C#의 Word 문서에 DataTable 삽입

.NET 개발자는 DataTable 개체를 자주 다루어야 합니다. 특히 데이터베이스 또는 XML/JSON 파일에서 데이터를 가져오거나 내보내야 하는 경우. 프로그래밍 방식으로 문서를 생성하는 동안 DataTable 개체의 데이터를 Word 문서의 테이블에 직접 삽입해야 할 수 있습니다. 이러한 경우 DataTable의 데이터를 C#의 Word 문서에 삽입할 수 있는 완벽하고 쉬운 솔루션을 제공하겠습니다.

Word DOC에 DataTable을 삽입하는 C# 라이브러리 - 무료 다운로드

DataTable 개체에서 Word 문서로 데이터를 가져오려면 Aspose.Words for .NET을 사용합니다. MS Word 문서를 작성하고 처리할 수 있는 기능이 풍부한 라이브러리입니다. 해당 DLL을 다운로드하거나 NuGet에서 설치할 수 있습니다.

DLL 다운로드

NuGet을 통해 설치

PM> Install-Package Aspose.Words

C# DataTable을 Word 문서에 삽입 - 단계

다음은 DataTable에서 데이터를 검색하고 Word 문서에 삽입하기 위해 따라야 할 단계입니다.

  • 데이터베이스 또는 데이터 파일의 데이터를 DataTable 개체로 로드합니다.
  • 새 Word 문서를 만들고 새 테이블을 추가합니다.
  • DataTable의 행을 반복하고 Word의 테이블에 각 행을 삽입합니다.

그리고 그게 다야.

이제 이러한 단계를 C# 코드로 변환하고 DataTable을 Word 문서로 가져오는 방법을 살펴보겠습니다.

DataTable의 데이터를 C#의 Word DOC에 삽입

먼저 문서 작성을 위한 DocumentBuilder, 데이터가 있는 DataTable 및 열 머리글 가져오기를 활성화/비활성화하는 추가 매개 변수를 허용하는 메서드를 작성합니다. 또한 Table 개체를 반환합니다.

다음은 이 방법의 작업 흐름입니다.

  • 새 테이블을 만들고 Table 개체에 대한 참조를 가져옵니다.
  • DataTable의 열에 따라 테이블에 열을 삽입합니다.
  • 첫 번째 행이 제목인 경우 글꼴 두께를 설정합니다.
  • DataTable.Rows 컬렉션의 각 DataRow를 반복합니다.
  • 각 값에 대해 새 셀을 삽입하고 그에 따라 데이터 유형을 설정합니다.
  • 테이블 객체를 반환합니다.

다음은 DataTable의 데이터를 Word 문서의 테이블로 가져오는 방법을 C#으로 구현한 것입니다.

///<summary>
/// 지정된 DataTable의 콘텐츠를 새 Aspose.Words 테이블 개체로 가져옵니다. 
/// 테이블은 문서 빌더의 현재 위치에 삽입되며 정의된 경우 현재 빌더의 형식을 사용합니다.
///</summary>
public static Table ImportTableFromDataTable(DocumentBuilder builder, DataTable dataTable, bool importColumnHeadings)
{
    Table table = builder.StartTable();

    // 데이터 소스의 열 이름이 헤더 행에 포함되는지 확인하십시오.
    if (importColumnHeadings)
    {
        // 변경하기 전에 이러한 속성의 원래 값을 저장하십시오.
        bool boldValue = builder.Font.Bold;
        ParagraphAlignment paragraphAlignmentValue = builder.ParagraphFormat.Alignment;

        // 적절한 속성을 사용하여 머리글 행의 형식을 지정합니다.
        builder.Font.Bold = true;
        builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;

        // 새 행을 만들고 테이블의 첫 번째 행에 각 열의 이름을 삽입합니다.
        foreach (DataColumn column in dataTable.Columns)
        {
            builder.InsertCell();
            builder.Writeln(column.ColumnName);
        }

        builder.EndRow();

        // 원래 서식을 복원합니다.
        builder.Font.Bold = boldValue;
        builder.ParagraphFormat.Alignment = paragraphAlignmentValue;
    }

    foreach (DataRow dataRow in dataTable.Rows)
    {
        foreach (object item in dataRow.ItemArray)
        {
            // 각 개체에 대해 새 셀을 삽입합니다.
            builder.InsertCell();

            switch (item.GetType().Name)
            {
                case "DateTime":
                    // 날짜 및 시간에 대한 사용자 지정 형식을 정의합니다.
                    DateTime dateTime = (DateTime)item;
                    builder.Write(dateTime.ToString("MMMM d, yyyy"));
                    break;
                default:
                    // 기본적으로 다른 항목은 텍스트로 삽입됩니다.
                    builder.Write(item.ToString());
                    break;
            }

        }

        // 현재 레코드의 모든 데이터를 삽입한 후 테이블 행을 끝낼 수 있습니다.
        builder.EndRow();
    }

    // DataTable의 모든 데이터 삽입을 마쳤으므로 테이블을 종료할 수 있습니다.
    builder.EndTable();

    return table;
}

이제 이 메서드를 호출하고 Word 문서에 DataTable을 삽입할 차례입니다.

C#에서 DataTable을 Word 문서로 가져오기

다음은 C#에서 DataTable의 데이터를 Word 문서로 가져오는 단계입니다.

  • 문서 클래스를 사용하여 새 Word 문서를 생성하거나 기존 문서를 로드합니다.
  • 데이터베이스/파일에서 DataTable 개체로 데이터를 읽습니다.
  • 이전 섹션에서 작성한 메서드를 호출하고 반환된 테이블을 가져옵니다.
  • 테이블의 서식을 설정합니다.
  • Document.Save() 메서드를 사용하여 Word 파일을 저장합니다.

다음 코드 샘플은 C#에서 DataTable을 Word 문서에 삽입하는 방법을 보여줍니다.

// 새 문서를 만듭니다.
Document doc = new Document();

// 표를 삽입할 위치를 지정하고 추가 서식을 지정할 수도 있습니다.
// 테이블에도 적용됩니다.
DocumentBuilder builder = new DocumentBuilder(doc);

// 넓은 테이블을 기대하므로 페이지 가로를 회전하려고 합니다.
doc.FirstSection.PageSetup.Orientation = Orientation.Landscape;

DataSet ds = new DataSet();
ds.ReadXml("Employees.xml");

// DataTable로 저장된 데이터 원본에서 데이터를 검색합니다.
DataTable dataTable = ds.Tables[0];

// DataTable에 포함된 데이터에서 문서의 테이블을 작성합니다.
Table table = ImportTableFromDataTable(builder, dataTable, true);

// 전체 테이블에 서식을 적용하는 매우 빠른 방법으로 테이블 스타일을 적용할 수 있습니다.
table.StyleIdentifier = StyleIdentifier.MediumList2Accent1;
table.StyleOptions = TableStyleOptions.FirstRow | TableStyleOptions.RowBands | TableStyleOptions.LastColumn;

// 테이블에서 이미지 열의 제목을 제거하려고 합니다.
table.FirstRow.LastCell.RemoveAllChildren();

// 출력 문서를 저장합니다.
doc.Save("Table.docx");

C# DataTable에서 Word Importer 라이브러리로 - 무료 라이선스 받기

평가 제한 없이 Aspose.Words for .NET을 사용할 수 있는 무료 임시 라이선스를 얻을 수 있습니다.

결론

이 문서에서는 DataTable의 데이터를 C#의 Word 문서에 삽입하는 방법을 배웠습니다. 코드 샘플을 애플리케이션에 쉽게 통합하고 DataTable을 사용하여 데이터베이스/XML/JSON에서 Word 문서로 직접 데이터를 가져올 수 있습니다.

.NET Word 라이브러리 - 자세히 알아보기

라이브러리에 대한 자세한 내용은 Aspose.Words for .NET 설명서를 참조하십시오. 질문이 있는 경우 포럼을 통해 언제든지 알려주십시오.

또한보십시오