Converter PDF para Excel em C++

Visão Geral

Este artigo explica como converter PDF para formatos Excel usando C++. Ele abrange os seguintes tópicos.

Formato: XLS

Formato: XLSX

Formato: Formato Microsoft Excel XLS

Formato: Formato Microsoft Excel XLSX

Outros tópicos abordados por este artigo

Conversões de PDF para Excel em C++

Aspose.PDF para C++ suporta o recurso de conversão de arquivos PDF para formatos Excel.

Aspose.PDF para C++ é um componente de manipulação de PDF, introduzimos um recurso que renderiza arquivo PDF para planilha Excel (arquivos XLS). Durante esta conversão, as páginas individuais do arquivo PDF são convertidas em planilhas Excel.

Para converter arquivos PDF para formato XLS, Aspose.PDF possui uma classe chamada ExcelSaveOptions. Um objeto da classe ExcelSaveOptions é passado como segundo argumento para o construtor Document.Save(..).

O trecho de código a seguir mostra o processo de conversão de arquivo PDF para formato XLS com Aspose.PDF para C++.

Passos: Converter PDF para XLS em C++ | Passos: Converter PDF para formato Excel XLS em C++

  1. Crie uma instância do objeto Document com o documento PDF de origem.
  2. Salve-o no formato XLS chamando o método Document->Save().
void ConvertPDFtoExcel()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    try {
    // Salve a saída no formato XLS
    document->Save(_dataDir + outfilename, SaveFormat::Excel);
    }
    catch (Exception ex) {
    std::cerr << ex->get_Message();
    }
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter PDF para XLS com Controle de Coluna

Ao converter um PDF para o formato XLS, uma coluna em branco é adicionada ao arquivo de saída como primeira coluna. A opção InsertBlankColumnAtFirst da classe in ExcelSaveOptions é usada para controlar esta coluna. Seu valor padrão é verdadeiro.

void ConvertPDFtoExcel_Advanced_InsertBlankColumnAtFirst()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para o nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para o nome do arquivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar objeto ExcelSave Option
    auto excelSave = MakeObject<ExcelSaveOptions>();

    // A opção InsertBlankColumnAtFirst da classe in ExcelSaveOptions é usada para controlar esta coluna. Seu valor padrão é verdadeiro.
    excelSave->set_InsertBlankColumnAtFirst(false);

    // Salvar a saída no formato XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter PDF para uma única planilha Excel

Ao exportar um arquivo PDF com muitas páginas para XLS, cada página é exportada para uma folha diferente no arquivo Excel. Isso ocorre porque a propriedade MinimizeTheNumberOfWorksheets é configurada como false por padrão. Para garantir que todas as páginas sejam exportadas para uma única planilha no arquivo Excel de saída, configure a propriedade MinimizeTheNumberOfWorksheets como true.

void ConvertPDFtoExcel_Advanced_MinimizeTheNumberOfWorksheets()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar objeto de opção de salvamento Excel
    auto excelSave = MakeObject<ExcelSaveOptions>();

    excelSave->set_MinimizeTheNumberOfWorksheets(true);

    // Salvar a saída no formato XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Converter para o formato XLSX

Por padrão, o Aspose.PDF usa XML Spreadsheet 2003 para armazenar dados. Para converter arquivos PDF para o formato XLSX, Aspose.PDF possui uma classe chamada ExcelSaveOptions com ‘Format’. Um objeto da classe ExcelSaveOptions é passado como segundo argumento para o método Save.

O seguinte trecho de código mostra o processo de conversão de arquivo PDF para o formato XLSX.

Passos: Converter PDF para XLSX em C++ | Passos: Converter PDF para formato Excel XLSX em C++

  1. Crie uma instância do objeto Document com o documento PDF de origem.
  2. Crie uma instância de ExcelSaveOptions.
  3. Defina o formato como ExcelSaveOptions::ExcelFormat::XLSX.
  4. Salve no formato XLSX chamando o método Document->Save() e passando a ele a instância de ExcelSaveOptions.
void ConvertPDFtoExcel_Advanced_SaveXLSX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String para nome do caminho
    String _dataDir("C:\\Samples\\Conversion\\");

    // String para nome do arquivo
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Abrir documento
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Instanciar objeto ExcelSave Option
    auto excelSave = MakeObject<ExcelSaveOptions>();

    excelSave->set_Format(ExcelSaveOptions::ExcelFormat::XLSX);

    // Salvar a saída no formato XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Veja Também

Este artigo também abrange estes tópicos. Os códigos são os mesmos que acima.

Format: Formato Microsoft Excel XLS

Format: Formato Microsoft Excel XLSX

Formato: XLS

Formato: XLSX