.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 설명서를 참조하십시오. 질문이 있는 경우 포럼을 통해 언제든지 알려주십시오.