Neste tópico, aprenderemos como adicionar linhas à tabela em DOCX usando C++. As tabelas têm ampla utilidade dentro do documento do Word e você pode inserir facilmente linhas dentro da tabela do documento do Word usando uma interface de API C++ muito simples.
Etapas para inserir linhas dentro da tabela no DOCX usando C++
- Instale o Aspose.Words.Cpp usando o Gerenciador de pacotes NuGet
- Adicionar referência aos namespaces Aspose::Words e Aspose::Words::Tables
- Instancie o objeto Document Class para carregar o documento para gerenciar as linhas da tabela
- Acesse a tabela na primeira seção usando o objeto Table Class
- Adicionar linhas na tabela usando várias opções
- Salve o documento do Word com a linha da tabela no formato DOCX usando o método Save
No exemplo a seguir, mostramos como você pode inserir linhas do zero dentro da tabela de um documento do Word. Ele também descreve como você pode clonar linhas existentes dentro da tabela e adicionar novas usando linhas clonadas dentro da tabela DOCX.
Código para inserir linhas dentro da tabela em DOCX usando C++
#pragma once | |
#include <cstdint> | |
#include <iostream> | |
#include <Aspose.Words.Cpp/Document.h> | |
#include <Aspose.Words.Cpp/Section.h> | |
#include <Aspose.Words.Cpp/Body.h> | |
#include <Aspose.Words.Cpp/Paragraph.h> | |
#include <Aspose.Words.Cpp/DocumentBase.h> | |
#include <Aspose.Words.Cpp/DocumentBuilder.h> | |
#include <Aspose.Words.Cpp/Drawing/Shape.h> | |
#include <Aspose.Words.Cpp/HeaderFooterType.h> | |
#include <Aspose.Words.Cpp/Saving/SaveOutputParameters.h> | |
#include <system/array.h> | |
#include <system/exceptions.h> | |
#include <Aspose.Words.Cpp/Tables/Cell.h> | |
#include <Aspose.Words.Cpp/Tables/CellCollection.h> | |
#include <Aspose.Words.Cpp/Tables/CellFormat.h> | |
#include <Aspose.Words.Cpp/Tables/PreferredWidth.h> | |
#include <Aspose.Words.Cpp/Tables/Row.h> | |
#include <Aspose.Words.Cpp/Tables/RowCollection.h> | |
#include <Aspose.Words.Cpp/Tables/Table.h> | |
#include <Aspose.Words.Cpp/Tables/TableCollection.h> | |
//#include <Aspose.Words.Cpp/Tables/Tables.h>s | |
#include <Aspose.Words.Cpp/Run.h> | |
#include <Aspose.Words.Cpp/RunCollection.h> | |
#include <system/enumerator_adapter.h> | |
#include <Aspose.Words.Cpp/License.h> | |
#include <system/io/path.h> | |
using System::ArrayPtr; | |
using System::MakeArray; | |
using System::MakeObject; | |
using System::SharedPtr; | |
using System::String; | |
using namespace Aspose::Words; | |
using namespace Aspose::Words::Tables; | |
class AddTableInWordDocumentUsingCpp | |
{ | |
public: | |
void AddTableRows() | |
{ | |
// Load and Set API License | |
System::String LicFilePath = u"Aspose.Total.CPP.lic"; | |
SharedPtr<License> WordsCPPLicenseForTable = System::MakeObject<License>(); | |
// Setting product license | |
WordsCPPLicenseForTable->SetLicense(LicFilePath); | |
// Instantiate Document class to load document for managing table | |
SharedPtr<Document> AddTableToDOCX = MakeObject<Document>(u"WordDocument.docx"); | |
// Access the Table by index in first section | |
SharedPtr <Table> tableToAddRowsTo = AddTableToDOCX->get_FirstSection()->get_Body() | |
->get_Tables()->idx_get(0); | |
// Instantiate a new Row Object | |
SharedPtr <Row> row = MakeObject<Row>(AddTableToDOCX); | |
// Add 3 Cells for added Row by accessing it cells collection | |
for (int iRowIndex = 0; iRowIndex < 3; iRowIndex++) | |
{ | |
SharedPtr < Cell> cell = MakeObject <Cell>(AddTableToDOCX); | |
cell->AppendChild(MakeObject <Paragraph>(AddTableToDOCX)); | |
cell->get_FirstParagraph()->get_Runs()->Add(MakeObject <Run>(AddTableToDOCX, u"Text in Cell " + iRowIndex)); | |
row->get_Cells()->Add(cell); | |
} | |
// Insert the Row after first row in table | |
tableToAddRowsTo->get_Rows()->Insert(1, row); | |
// Now, clone the existing Row in Table | |
SharedPtr <Row> cloneOfRow = System::DynamicCast<Row>(tableToAddRowsTo->get_FirstRow()->Clone(true)); | |
// Clear all content from all Cells of the row | |
for(SharedPtr<Node> node : cloneOfRow->get_Cells()) | |
{ | |
SharedPtr<Cell> cell = System::DynamicCast<Cell>(node); | |
cell->RemoveAllChildren(); | |
cell->EnsureMinimum(); | |
} | |
// Now see, how to add multiple empty rows at the end of table | |
for (int iRowCounter = 0; iRowCounter < 10; iRowCounter++) | |
{ | |
SharedPtr<Row> emptyRow = System::DynamicCast<Row>(cloneOfRow->Clone(true)); | |
tableToAddRowsTo->get_Rows()->Add(emptyRow); | |
} | |
// Save the word document with table to DOCX format | |
AddTableToDOCX->Save(u"InsertTableinDocx.docx"); | |
} | |
}; |
No exemplo anterior, analisamos Como inserir cabeçalho e rodapé no DOCX usando C++. Enquanto neste tópico, aprendemos sobre adicionar linhas à tabela de um documento do Word usando C++.