표는 정보와 그림을 정리하는 데 도움이 됩니다. 우리는 종종 정보를 표시하기 위해 워드 문서(DOCX/DOC)에 표를 삽입합니다. 워드 프로세싱 응용 프로그램에서 C++를 사용하여 테이블을 쉽게 만들 수 있습니다. 다음 예를 통해 Word 문서에서 표 작업을 배울 수 있습니다.

계속해서 이 모든 주제를 자세히 살펴보겠습니다.

Word 문서 API에 표 삽입

먼저 Aspose.Words for C++ API를 사용하여 워드 문서에 테이블을 삽입한다는 점에 유의하십시오. New Releases 또는 NuGet 갤러리를 통해 API를 다운로드하여 API를 구성할 수 있습니다. 적절하게 구성되면 API에 의해 노출된 메서드, 속성 및 클래스를 간단히 활용할 수 있으므로 몇 가지 간단한 API 호출을 사용하여 DOCX 또는 DOC 파일과 같은 Microsoft Word 문서를 생성, 편집 또는 조작할 수 있습니다.

C++를 사용하여 Word 문서에 표 삽입

몇 가지 간단한 단계를 통해 Word 문서에 표를 삽입할 수 있습니다. 그러나 여기서 주의할 점은 모든 자식 노드가 같은 개체에 속하도록 문서 개체를 각 노드의 생성자에 전달해야 한다는 점입니다. 아래 나열된 단계를 따라야 합니다.

  1. Document 클래스의 객체 초기화
  2. Table 객체 생성
  3. 문서에 테이블 추가
  4. 행과 열 만들기
  5. 표 셀에 자동 맞춤 적용
  6. 출력 Word 문서 저장

아래 코드 조각은 C++를 사용하여 Word 문서(DOCX/DOC)에 표를 삽입하는 방법을 보여줍니다.

// 문서 디렉토리의 경로입니다.
System::String outputDataDir = dataDir;
System::SharedPtr<Document> doc = System::MakeObject<Document>();

// 먼저 테이블 객체를 생성합니다. 문서 객체를 전달해야 하는 방법에 유의하십시오.
// 각 노드의 생성자에게. 이것은 우리가 생성하는 모든 노드가 속해야 하기 때문입니다.
// 어떤 문서에.
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);

// 문서에 표를 추가합니다.
doc->get_FirstSection()->get_Body()->AppendChild(table);

// 여기서 우리는 우리를 위해 행과 셀을 생성하기 위해 SureMinimum을 호출할 수 있습니다. 이 방법이 사용됩니다
// 지정된 노드가 유효한지 확인하려면 이 경우 유효한 테이블에 하나 이상의 노드가 있어야 합니다.
// 행과 하나의 셀, 따라서 이 방법은 우리를 위해 그것들을 생성합니다.
// 대신 행과 테이블 생성을 직접 처리합니다. 이 작업을 수행하는 가장 좋은 방법이 될 것입니다.
// 예를 들어 알고리즘 내부에 테이블을 생성하는 경우.
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);

// 이제 자동 맞춤 설정을 적용할 수 있습니다.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);

// 셀을 만들고 행에 추가
System::SharedPtr<Cell> cell = System::MakeObject<Cell>(doc);
cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue());
cell->get_CellFormat()->set_Width(80);

// 셀에 단락을 추가하고 일부 텍스트가 포함된 새 실행을 추가합니다.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));

// 행에 셀을 추가합니다.
row->AppendChild(cell);

// 그런 다음 테이블의 다른 셀과 행에 대해 프로세스를 반복합니다.
// 또한 기존 셀과 행을 복제하여 작업 속도를 높일 수도 있습니다.
row->AppendChild((System::StaticCast<Node>(cell))->Clone(false));
row->get_LastCell()->AppendChild(System::MakeObject<Paragraph>(doc));
row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 2 Text"));
System::String outputPath = outputDataDir + u"InsertTableDirectly.doc";

// 문서를 디스크에 저장합니다.
doc->Save(outputPath);

C++를 사용하여 Word 문서의 HTML에서 표 삽입

HTML 파일에 DOCX, DOC 등과 같은 워드 문서에 삽입해야 하는 테이블이 포함되어 있을 수 있습니다. 또는 웹사이트에서 테이블을 복사해야 할 수도 있습니다. 따라서 처음부터 테이블을 만들고 디자인하는 대신 HTML 마크업을 테이블로 워드 문서로 쉽게 구문 분석할 수 있습니다. 예를 들어 다음 HTML 문자열을 사용하여 Word 문서에 표를 추가할 수 있습니다.

<table><tr><td>Row 1, Cell 1</td><td>Row 1, Cell 2</td></tr><tr><td>Row 2, Cell 1</td><td>Row 2, Cell 2</td></tr></table>

기본적이면서도 중요한 유스케이스로 table 태그에 대한 지원을 시연할 수 있도록 내용을 단순하게 유지했습니다. 또한 HTML에서 생성된 테이블에는 AutoFit을 적용할 수 없다는 점에 유의해야 합니다.

Word 문서에 HTML 표를 삽입하려면 아래 단계를 따르십시오.

  1. Document 클래스의 인스턴스 초기화
  2. InsertHtml 메소드로 HTML 마크업 전달
  3. 출력 DOCX 워드 파일 저장

아래 코드는 다음 단계를 따르고 C++를 사용하여 HTML로 Word 문서에 테이블을 만드는 방법을 보여줍니다.

// 문서 디렉토리의 경로입니다.
System::String outputDataDir = dataDir;
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// HTML에서 표를 삽입합니다. AutoFitSettings는 테이블에 적용되지 않습니다.
// HTML에서 삽입되었습니다.
builder->InsertHtml(u"<table><tr><td>Row 1, Cell 1</td><td>Row 1, Cell 2</td></tr><tr><td>Row 2, Cell 1</td><td>Row 2, Cell 2</td></tr></table>");

System::String outputPath = outputDataDir + u"InsertTableFromHtml.doc";
// 문서를 디스크에 저장합니다.
doc->Save(outputPath);

이 방법이 위에서 살펴본 접근 방식보다 조금 더 간단하다는 것을 알 수 있습니다. HTML 문자열의 Table 태그에는 모든 정보가 포함되어 있으므로 행, 열 또는 셀에 대해 각 노드를 하나씩 추가할 필요가 없기 때문입니다. 다음은 Word 문서에 추가된 이 간단한 HTML 테이블의 스크린샷입니다.

Word에 표 삽입

C++에서 문서 빌더를 사용하여 테이블 삽입

Aspose.Words for C++ API의 가장 좋은 점은 API의 경쟁력이 되고 다른 옵션 중에서 눈에 띄게 만드는 다양한 기능을 제공한다는 것입니다. 마찬가지로 문서 빌더를 사용하여 테이블을 삽입하는 기능은 워드 문서(DOC/DOCX)에 테이블을 추가하는 또 다른 접근 방식입니다. 따라서 세 가지 다른 관점에서 세부 사항을 살펴보겠습니다.

1) C++를 사용하여 Document Builder를 사용하여 DOCX에 단순 테이블 삽입

문서 빌더를 사용하여 워드 문서에 간단한 표를 추가하려면 아래 단계를 따라야 합니다.

  1. 문서 개체 만들기
  2. StartTable() 메서드를 호출하고 셀 삽입
  3. 행 및 셀 추가
  4. 출력 DOCX 파일 저장

또한 아래 코드 스니펫은 C++로 DOCX 파일에 간단한 테이블을 삽입하는 방법을 보여줍니다.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// 이 메소드를 호출하여 테이블 작성을 시작합니다.
builder->StartTable();
builder->InsertCell();
builder->Write(u"Row 1, Cell 1 Content.");

// 두 번째 셀 만들기
builder->InsertCell();
builder->Write(u"Row 1, Cell 2 Content.");

// 행을 종료하고 새 행을 시작하려면 다음 메소드를 호출하십시오.
builder->EndRow();

// 두 번째 행의 첫 번째 셀을 작성합니다.
builder->InsertCell();
builder->Write(u"Row 2, Cell 1 Content");

// 두 번째 셀 만들기.
builder->InsertCell();
builder->Write(u"Row 2, Cell 2 Content.");
builder->EndRow();

// 테이블 구축이 완료되었다는 신호입니다.
builder->EndTable();
System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.SimpleTable.doc";

// 문서를 디스크에 저장합니다.
doc->Save(outputPath);

2) C++를 사용하여 Document Builder를 사용하여 DOCX에 서식 있는 테이블 삽입

다음 단계에 따라 서식이 지정된 표를 Word 문서에 삽입할 수 있습니다.

  1. Document 클래스의 인스턴스 초기화
  2. 헤더 행 만들기
  3. 서식에 대한 들여쓰기 및 기능 설정
  4. 글꼴 서식 재설정
  5. 출력 Word DOCX 파일 저장

아래 코드 스니펫은 C++를 사용하여 DOCX 파일에 형식이 지정된 테이블을 생성합니다.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
System::SharedPtr<Table> table = builder->StartTable();

// 헤더 행을 만듭니다.
builder->InsertCell();

// 테이블의 왼쪽 들여쓰기를 설정합니다. 표 전체 서식은 다음에 적용해야 합니다.
// 테이블에 하나 이상의 행이 있습니다.
table->set_LeftIndent(20.0);

// 높이를 설정하고 머리글 행의 높이 규칙을 정의합니다.
builder->get_RowFormat()->set_Height(40.0);
builder->get_RowFormat()->set_HeightRule(HeightRule::AtLeast);

// 헤더 행에 대한 몇 가지 특수 기능.
builder->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::FromArgb(198, 217, 241));
builder->get_ParagraphFormat()->set_Alignment(ParagraphAlignment::Center);
builder->get_Font()->set_Size(16);
builder->get_Font()->set_Name(u"Arial");
builder->get_Font()->set_Bold(true);
builder->get_CellFormat()->set_Width(100.0);
builder->Write(u"Header Row,\n Cell 1");

// 이 셀은 이전 셀에서 상속되기 때문에 이 셀의 너비를 지정할 필요가 없습니다.
builder->InsertCell();
builder->Write(u"Header Row,\n Cell 2");
builder->InsertCell();
builder->get_CellFormat()->set_Width(200.0);
builder->Write(u"Header Row,\n Cell 3");
builder->EndRow();

// 다른 행과 셀에 대한 기능을 설정합니다.
builder->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_White());
builder->get_CellFormat()->set_Width(100.0);
builder->get_CellFormat()->set_VerticalAlignment(CellVerticalAlignment::Center);

// 높이 재설정 및 테이블 본문에 대한 다른 높이 규칙 정의
builder->get_RowFormat()->set_Height(30.0);
builder->get_RowFormat()->set_HeightRule(HeightRule::Auto);
builder->InsertCell();

// 글꼴 서식을 재설정합니다.
builder->get_Font()->set_Size(12);
builder->get_Font()->set_Bold(false);

// 다른 세포를 만드십시오.
builder->Write(u"Row 1, Cell 1 Content");
builder->InsertCell();
builder->Write(u"Row 1, Cell 2 Content");
builder->InsertCell();
builder->get_CellFormat()->set_Width(200.0);
builder->Write(u"Row 1, Cell 3 Content");
builder->EndRow();
builder->InsertCell();
builder->get_CellFormat()->set_Width(100.0);
builder->Write(u"Row 2, Cell 1 Content");
builder->InsertCell();
builder->Write(u"Row 2, Cell 2 Content");
builder->InsertCell();
builder->get_CellFormat()->set_Width(200.0);
builder->Write(u"Row 2, Cell 3 Content.");
builder->EndRow();
builder->EndTable();
System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.FormattedTable.doc";

// 문서를 디스크에 저장합니다.
doc->Save(outputPath);

3) C++를 사용하여 Document Builder를 사용하여 DOCX에 중첩 테이블 삽입

때로는 기존 테이블 내부에 다른 테이블이 필요합니다. 예를 들어, 테이블의 일부 행이나 열에 있는 셀은 하위 범주 또는 일부 다른 필드에 대한 하위 테이블을 포함할 수 있습니다. 이러한 시나리오에서 다음 단계에 따라 추가할 수 있는 중첩 테이블이 유용합니다.

  1. 외부 Table을 빌드한 다음 EndTable 메서드를 호출합니다.
  2. 외부 테이블의 셀 내부에 내부 테이블 만들기
  3. 출력 워드 문서 저장

다음 코드 조각은 C++를 사용하여 Word 문서에 중첩 테이블을 삽입하는 방법을 보여줍니다.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// 외부 테이블을 만듭니다.
System::SharedPtr<Cell> cell = builder->InsertCell();
builder->Writeln(u"Outer Table Cell 1");
builder->InsertCell();
builder->Writeln(u"Outer Table Cell 2");

// 이 호출은 첫 번째 테이블 내에 중첩 테이블을 생성하는 데 중요합니다.
// 이 호출이 없으면 아래에 삽입된 셀이 외부 테이블에 추가됩니다.
builder->EndTable();

// 외부 테이블의 첫 번째 셀로 이동합니다.
builder->MoveTo(cell->get_FirstParagraph());

// 내부 테이블을 만듭니다.
builder->InsertCell();
builder->Writeln(u"Inner Table Cell 1");
builder->InsertCell();
builder->Writeln(u"Inner Table Cell 2");
builder->EndTable();
System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.NestedTable.doc";

// 문서를 디스크에 저장합니다.
doc->Save(outputPath);

결론

요약하자면, 다양한 접근 방식을 사용하여 Word 문서에 다른 표를 삽입하는 방법을 배웠습니다. 간단한 테이블 또는 HTML 문자열과 함께 서식이 지정되고 중첩된 테이블을 Word 문서(DOC/DOCX)에 삽입할 수 있습니다. 그러나 혼동이나 문의 사항이 있는 경우 무료 지원 포럼에서 문의할 수 있습니다. 또한 API 참조제품 문서를 참조하여 참조할 수도 있습니다.

또한보십시오