Workbook Designer에 ICellsDataTableDataSource 사용

소개

자동화된 데이터 통합을 통해 고급 스프레드시트를 만드는 것은 특히 비즈니스 애플리케이션에서 게임 체인저가 될 수 있습니다. 이 튜토리얼에서는 사용 방법을 자세히 살펴보겠습니다.ICellsDataTableDataSourceAspose.Cells for .NET에서 워크북 디자이너를 위한 가이드입니다. 사용자 지정 데이터를 Excel 파일에 동적으로 로드하는 간단하고 사람이 읽을 수 있는 솔루션을 구축하는 방법을 안내해 드리겠습니다. 따라서 고객 목록, 판매 데이터 또는 이와 유사한 작업을 하고 있다면 이 가이드가 적합합니다!

필수 조건

시작하려면 다음 사항이 있는지 확인하세요.

  • .NET 라이브러리용 Aspose.Cells – 여기에서 다운로드할 수 있습니다.여기 또는 무료 체험판을 받아보세요.
  • .NET 개발 환경 – Visual Studio는 좋은 선택입니다.
  • C#에 대한 기본적인 이해 – 클래스와 데이터 처리에 대한 지식이 있으면 따라가는 데 도움이 됩니다. 계속하기 전에 개발 환경에 필요한 패키지가 설정되어 있는지 확인하세요.

패키지 가져오기

Aspose.Cells를 효과적으로 사용하려면 필수 패키지를 가져와야 합니다. 아래는 필요한 네임스페이스에 대한 빠른 참조입니다.

using Aspose.Cells.Rendering;
using Aspose.Cells.WebExtensions;
using System;
using System.Collections;

1단계: 고객 데이터 클래스 정의

시작하려면 간단한 것을 만드십시오.Customer 클래스. 이 클래스는 다음과 같은 기본 고객 정보를 보관합니다.FullName 그리고Address이를 데이터의 “모양"을 정의하는 방법으로 생각해보세요.

public class Customer
{
    public Customer(string aFullName, string anAddress)
    {
        FullName = aFullName;
        Address = anAddress;
    }
    public string FullName { get; set; }
    public string Address { get; set; }
}

2단계: 고객 목록 클래스 설정

다음으로, 다음을 정의합니다.CustomerList 확장되는 클래스ArrayList . 이 사용자 지정 목록에는 인스턴스가 보관됩니다.Customer 각 항목에 대한 인덱스된 액세스를 허용합니다.

public class CustomerList : ArrayList
{
    public new Customer this[int index]
    {
        get { return (Customer)base[index]; }
        set { base[index] = value; }
    }
}

이 단계에서는 Aspose.Cells가 인식하고 처리할 수 있는 형식으로 데이터를 래핑합니다.

3단계: 고객 데이터 소스 클래스 생성

여기서 흥미로운 일이 시작됩니다. 우리는 다음을 만들 것입니다.CustomerDataSource 클래스 구현ICellsDataTable Aspose.Cells의 워크북 디자이너와 호환되는 데이터를 만들려면

public class CustomerDataSource : ICellsDataTable
{
    internal string[] m_Columns;
    internal ICollection m_DataSource;
    private Hashtable m_PropHash;
    private IEnumerator m_IEnumerator;
    private PropertyInfo[] m_Properties;
    public CustomerDataSource(CustomerList customers)
    {
        this.m_DataSource = customers;
        this.m_Properties = customers[0].GetType().GetProperties();
        this.m_Columns = new string[this.m_Properties.Length];
        this.m_PropHash = new Hashtable(this.m_Properties.Length);
        for (int i = 0; i < m_Properties.Length; i++)
        {
            this.m_Columns[i] = m_Properties[i].Name;
            this.m_PropHash.Add(m_Properties[i].Name, m_Properties[i]);
        }
        this.m_IEnumerator = this.m_DataSource.GetEnumerator();
    }
    public string[] Columns => this.m_Columns;
    public int Count => this.m_DataSource.Count;
    public void BeforeFirst()
    {
        this.m_IEnumerator = this.m_DataSource.GetEnumerator();
    }
    public object this[int index] => this.m_Properties[index].GetValue(this.m_IEnumerator.Current, null);
    public object this[string columnName] => ((PropertyInfo)this.m_PropHash[columnName]).GetValue(this.m_IEnumerator.Current, null);
    public bool Next()
    {
        if (this.m_IEnumerator == null)
            return false;
        return this.m_IEnumerator.MoveNext();
    }
}

이 관습CustomerDataSource 클래스를 사용하면 Aspose.Cells가 각각을 해석할 수 있습니다.Customer Excel 파일에 행으로 객체를 추가합니다.

4단계: 고객 데이터 초기화

이제, 우리 목록에 몇몇 고객을 추가해 보겠습니다. 여기서 통합 문서에 쓸 데이터를 로드합니다. 필요에 따라 항목을 더 추가해도 됩니다.

CustomerList customers = new CustomerList();
customers.Add(new Customer("Thomas Hardy", "120 Hanover Sq., London"));
customers.Add(new Customer("Paolo Accorti", "Via Monte Bianco 34, Torino"));

이 예에서 우리는 작은 데이터세트로 작업하고 있습니다. 그러나 데이터베이스나 다른 소스에서 데이터를 로드하여 이 목록을 쉽게 확장할 수 있습니다.

5단계: 통합 문서 로드

이제 필요한 스마트 마커가 포함된 기존 Excel 통합 문서를 열어 보겠습니다. 이 통합 문서는 템플릿 역할을 하며 Aspose.Cells는 스마트 마커를 고객 데이터로 동적으로 대체합니다.

string sourceDir = "Your Document Directory";
Workbook workbook = new Workbook(sourceDir + "SmartMarker1.xlsx");

확인한다"SmartMarker1.xlsx" 다음과 같은 플레이스홀더가 포함되어 있습니다.&=Customer.FullName 그리고&=Customer.Address 어디에 데이터를 입력해야 하나요?

6단계: 통합 문서 디자이너 설정

이제 통합 문서 디자이너를 구성하여 고객 데이터 소스를 통합 문서의 스마트 마커와 연결해 보겠습니다.

WorkbookDesigner designer = new WorkbookDesigner(workbook);
designer.SetDataSource("Customer", new CustomerDataSource(customers));

그만큼SetDataSource 방법은 우리의 것을 바인딩합니다CustomerDataSource 통합 문서의 스마트 마커로. 각 마커에 레이블이 지정됨&=Customer 이제 Excel에서 해당 고객 데이터로 대체됩니다.

7단계: 통합 문서 처리 및 저장

마지막으로 통합 문서를 처리하여 데이터를 채우고 결과를 저장해 보겠습니다.

string outputDir = "Your Document Directory";
designer.Process();
workbook.Save(outputDir + "dest.xlsx");

이 코드는 스마트 마커 처리를 트리거하고 모든 플레이스홀더를 데이터로 대체하고 결과를 다음과 같이 저장합니다.dest.xlsx.

결론

축하합니다! 성공적으로 구현되었습니다.ICellsDataTableDataSource Aspose.Cells for .NET을 사용하는 워크북 디자이너를 위한 것입니다. 이 접근 방식은 특히 고객 목록이나 제품 재고와 같은 동적 데이터를 처리할 때 스프레드시트에서 데이터 채우기를 자동화하는 데 이상적입니다. 이러한 기술을 사용하면 Excel 기반 보고를 쉽게 만드는 데이터 기반 애플리케이션을 구축하는 데 큰 도움이 됩니다!

자주 묻는 질문

무엇인가요ICellsDataTable in Aspose.Cells?

Aspose.Cells 스마트 마커와 사용자 정의 데이터 소스를 연결하여 동적으로 데이터를 채울 수 있는 인터페이스입니다.

통합 문서 템플릿에서 데이터를 사용자 지정하려면 어떻게 해야 하나요?

스마트 마커라고 불리는 플레이스홀더, 예:&=Customer.FullName, 사용됩니다. 이러한 마커는 처리 중에 실제 데이터로 대체됩니다.

Aspose.Cells for .NET은 무료인가요?

Aspose.Cells는 무료 체험판을 제공하지만 전체 액세스에는 유료 라이선스가 필요합니다.무료 체험 또는구입하다 옵션.

더 많은 고객 데이터를 동적으로 추가할 수 있나요?

물론입니다! 간단히 다음을 채우세요.CustomerList프로그램을 실행하기 전에 추가 항목을 입력하세요.

도움이 필요한 경우 어디에서 도움을 받을 수 있나요?

Aspose에는지원 포럼 사용자가 커뮤니티와 Aspose 팀으로부터 질문을 하고 도움을 받을 수 있는 곳입니다.