Word处理控件Aspose.Words功能演示:使用 C++ 在 Word 文档 (DOC/DOCX) 中插入表格 您所在的位置:网站首页 docx添加表格 Word处理控件Aspose.Words功能演示:使用 C++ 在 Word 文档 (DOC/DOCX) 中插入表格

Word处理控件Aspose.Words功能演示:使用 C++ 在 Word 文档 (DOC/DOCX) 中插入表格

2023-03-17 01:05| 来源: 网络整理| 查看: 265

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。

​---------------------------------Aspose技术交流群(761297826)----------------------------

表格有助于组织信息和图表。我们经常在word文档( DOCX / DOC )中插入表格来展示信息。在文字处理应用程序中,您可以使用 C++ 轻松创建表格。您可以通过以下示例来学习在 Word 文档中使用表格:

一、在 Word 文档 API 中插入表格

首先,请注意您将使用Aspose.Words for C++ API 在 word 文档中插入表格。您可以通过从新版本或通过NuGet库下载它来配置 API 。正确配置后,您可以简单地利用 API 公开的方法、属性和类,以便可以使用一些简单的 API 调用来创建、编辑或操作 Microsoft Word 文档,如 DOCX 或 DOC 文件。

二、使用 C++ 在 Word 文档中插入表格

您可以通过几个简单的步骤在 Word 文档中插入表格。不过这里需要注意的是,必须将文档对象传递给每个节点的构造函数,这样所有的子节点都属于同一个对象。您需要按照下面列出的步骤操作:

初始化文档类的对象创建表对象将表添加到文档创建行和列在表格单元格上应用自动调整保存输出 Word 文档

下面的代码片段显示了如何使用 C++ 在 Word 文档 (DOCX/DOC) 中插入表格:

// The path to the documents directory. System::String outputDataDir = dataDir; System::SharedPtr doc = System::MakeObject(); // We start by creating the table object. Note how we must pass the document object // To the constructor of each node. This is because every node we create must belong // To some document. System::SharedPtr table = System::MakeObject(doc); // Add the table to the document. doc->get_FirstSection()->get_Body()->AppendChild(table); // Here we could call EnsureMinimum to create the rows and cells for us. This method is used // To ensure that the specified node is valid, in this case a valid table should have at least one // Row and one cell, therefore this method creates them for us. // Instead we will handle creating the row and table ourselves. This would be the best way to do this // If we were creating a table inside an algorthim for example. System::SharedPtr row = System::MakeObject(doc); row->get_RowFormat()->set_AllowBreakAcrossPages(true); table->AppendChild(row); // We can now apply any auto fit settings. table->AutoFit(AutoFitBehavior::FixedColumnWidths); // Create a cell and add it to the row System::SharedPtr cell = System::MakeObject(doc); cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue()); cell->get_CellFormat()->set_Width(80); // Add a paragraph to the cell as well as a new run with some text. cell->AppendChild(System::MakeObject(doc)); cell->get_FirstParagraph()->AppendChild(System::MakeObject(doc, u"Row 1, Cell 1 Text")); // Add the cell to the row. row->AppendChild(cell); // We would then repeat the process for the other cells and rows in the table. // We can also speed things up by cloning existing cells and rows. row->AppendChild((System::StaticCast(cell))->Clone(false)); row->get_LastCell()->AppendChild(System::MakeObject(doc)); row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject(doc, u"Row 1, Cell 2 Text")); System::String outputPath = outputDataDir + u"InsertTableDirectly.doc"; // Save the document to disk. doc->Save(outputPath);三、使用 C++ 在 Word 文档中从 HTML 插入表格

HTML 文件可能包含表格,您需要将其插入到 DOCX、DOC 等 word 文档中。或者您可能需要从网站复制表格。因此,无需从头开始创建和设计表格,您可以轻松地将 HTML 标记作为表格解析到 Word 文档中。例如,您可以使用以下 HTML 字符串将表格添加到 word 文档中:

Row 1, Cell 1Row 1, Cell 2Row 2, Cell 1Row 2, Cell 2我们使内容保持简单,以便可以通过基本但重要的用例来演示对表格标签的支持。此外,这里需要注意的是,AutoFit 不能应用于从 HTML 创建的表格。

让我们按照以下步骤在 Word 文档中插入 HTML 表格:

初始化文档类的实例使用InsertHtml方法传递 HTML 标记保存输出DOCX word文件

下面的代码遵循这些步骤,并展示了如何使用 C++ 在 HTML 的 Word 文档中创建表格:

// The path to the documents directory. System::String outputDataDir = dataDir; System::SharedPtr doc = System::MakeObject(); System::SharedPtr builder = System::MakeObject(doc); // Insert the table from HTML. Note that AutoFitSettings does not apply to tables // Inserted from HTML. builder->InsertHtml(u"Row 1, Cell 1Row 1, Cell 2Row 2, Cell 1Row 2, Cell 2"); System::String outputPath = outputDataDir + u"InsertTableFromHtml.doc"; // Save the document to disk. doc->Save(outputPath);

您会注意到此方法比我们上面探讨的方法要简单一些。原因是,您不需要为行、列或单元格逐个添加每个节点,因为 HTML 字符串中的 Table 标记包含所有信息。以下是添加到 Word 文档中的这个简单 HTML 表格的屏幕截图:

四、在 C++ 中使用文档生成器插入表

Aspose.Words for C++ API 的最佳之处在于它提供了多种功能,这些功能成为 API 的竞争优势,并使其在其他选项中脱颖而出。同样,使用文档生成器插入表格的功能是在 word 文档(DOC/DOCX)中添加表格的另一种方法。因此,让我们从三个不同的角度来探讨细节:

1) 使用 C++ 使用文档生成器在 DOCX 中插入简单表格

要使用文档生成器在 word 文档中添加一个简单的表格,您需要按照以下步骤操作:

创建文档对象调用StartTable()方法并插入单元格添加行和单元格保存输出 DOCX 文件

此外,下面的代码片段显示了如何使用 C++ 在 DOCX 文件中插入简单表格:

System::SharedPtr doc = System::MakeObject(); System::SharedPtr builder = System::MakeObject(doc); // We call this method to start building the table. builder->StartTable(); builder->InsertCell(); builder->Write(u"Row 1, Cell 1 Content."); // Build the second cell builder->InsertCell(); builder->Write(u"Row 1, Cell 2 Content."); // Call the following method to end the row and start a new row. builder->EndRow(); // Build the first cell of the second row. builder->InsertCell(); builder->Write(u"Row 2, Cell 1 Content"); // Build the second cell. builder->InsertCell(); builder->Write(u"Row 2, Cell 2 Content."); builder->EndRow(); // Signal that we have finished building the table. builder->EndTable(); System::String outputPath = outputDataDir + u"InsertTableUsingDocumentBuilder.SimpleTable.doc"; // Save the document to disk. doc->Save(outputPath);

2) 使用 C++ 使用文档生成器在 DOCX 中插入格式化表格

您可以使用以下步骤将格式化表格插入到 word 文档中:

初始化文档类的实例制作标题行为格式设置缩进和功能重置字体格式保存输出 Word DOCX 文件

下面的代码片段使用 C++ 在 DOCX 文件中创建格式化表格:

System::SharedPtr doc = System::MakeObject(); System::SharedPtr builder = System::MakeObject(doc); System::SharedPtr table = builder->StartTable(); // Make the header row. builder->InsertCell(); // Set the left indent for the table. Table wide formatting must be applied after // At least one row is present in the table. table->set_LeftIndent(20.0); // Set height and define the height rule for the header row. builder->get_RowFormat()->set_Height(40.0); builder->get_RowFormat()->set_HeightRule(HeightRule::AtLeast); // Some special features for the header row. 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"); // We don't need to specify the width of this cell because it's inherited from the previous cell. 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(); // Set features for the other rows and cells. 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); // Reset height and define a different height rule for table body builder->get_RowFormat()->set_Height(30.0); builder->get_RowFormat()->set_HeightRule(HeightRule::Auto); builder->InsertCell(); // Reset font formatting. builder->get_Font()->set_Size(12); builder->get_Font()->set_Bold(false); // Build the other cells. 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"; // Save the document to disk. doc->Save(outputPath);

3) 使用 C++ 使用文档生成器在 DOCX 中插入嵌套表

有时我们需要在现有表中添加另一个表。例如,表的某行或某列中的单元格可以包含子类别或某个其他字段的子表。在这种情况下,嵌套表很有用,可以按照以下步骤添加:

构建外部表,然后调用EndTable方法在外表的单元格内构建内表保存输出word文档

以下代码片段显示了如何使用 C++ 在 Word 文档中插入嵌套表格:

System::SharedPtr doc = System::MakeObject(); System::SharedPtr builder = System::MakeObject(doc); // Build the outer table. System::SharedPtr cell = builder->InsertCell(); builder->Writeln(u"Outer Table Cell 1"); builder->InsertCell(); builder->Writeln(u"Outer Table Cell 2"); // This call is important in order to create a nested table within the first table // Without this call the cells inserted below will be appended to the outer table. builder->EndTable(); // Move to the first cell of the outer table. builder->MoveTo(cell->get_FirstParagraph()); // Build the inner table. 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"; // Save the document to disk. doc->Save(outputPath);

以上便是如何使用 C++ 在 Word 文档 (DOC/DOCX) 中插入表格文件详细步骤 ,要是您还有其他关于产品方面的问题,欢迎咨询我们,或者加入我们官方技术交流群。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有