Convert PDF to Excel in C++

Overview

В этой статье объясняется, как конвертировать PDF в форматы Excel с использованием C++. Она охватывает следующие темы.

Формат: XLS

Формат: XLSX

Формат: Microsoft Excel XLS формат

Формат: Microsoft Excel XLSX формат

Другие темы, рассмотренные в этой статье

Конвертация PDF в Excel с помощью C++

Aspose.PDF для C++ поддерживает функцию конвертации файлов PDF в форматы Excel.

Aspose.PDF для C++ — это компонент для работы с PDF, в котором мы внедрили функцию преобразования файла PDF в книгу Excel (файлы XLS). В процессе этой конвертации отдельные страницы PDF файла преобразуются в листы Excel.

Для того чтобы конвертировать файлы PDF в формат XLS, в Aspose.PDF имеется класс под названием ExcelSaveOptions. Объект класса ExcelSaveOptions передается в качестве второго аргумента в конструктор Document.Save(..).

Следующий фрагмент кода демонстрирует процесс конвертации файла PDF в формат XLS с помощью Aspose.PDF для C++.

Шаги: Конвертация PDF в XLS на C++ | Шаги: Конвертация PDF в формат Excel XLS на C++

  1. Создайте экземпляр объекта Document с исходным PDF-документом.
  2. Сохраните его в формате XLS, вызвав метод Document->Save().
void ConvertPDFtoExcel()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    try {
    // Сохранить результат в формате XLS
    document->Save(_dataDir + outfilename, SaveFormat::Excel);
    }
    catch (Exception ex) {
    std::cerr << ex->get_Message();
    }
    std::clog << __func__ << ": Finish" << std::endl;
}

Преобразование PDF в XLS с контролем столбца

При преобразовании PDF в формат XLS в выходной файл добавляется пустой столбец в качестве первого столбца. The in ExcelSaveOptions class’ InsertBlankColumnAtFirst option is used to control this column. Its default value is true.

void ConvertPDFtoExcel_Advanced_InsertBlankColumnAtFirst()
{
    std::clog << __func__ << ": Start" << std::endl;
    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for file name
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

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

    // Instantiate ExcelSave Option object
    auto excelSave = MakeObject<ExcelSaveOptions>();

    // The in ExcelSaveOptions class' InsertBlankColumnAtFirst option is used to control this column. Its default value is true.
    excelSave->set_InsertBlankColumnAtFirst(false);

    // Save the output in XLS format
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Конвертировать PDF в один лист Excel

При экспорте PDF-файла с большим количеством страниц в XLS каждая страница экспортируется на отдельный лист в файле Excel. Это связано с тем, что свойство MinimizeTheNumberOfWorksheets по умолчанию установлено в значение false. Чтобы обеспечить экспорт всех страниц в один лист в выходном Excel файле, установите свойство MinimizeTheNumberOfWorksheets в значение true.

void ConvertPDFtoExcel_Advanced_MinimizeTheNumberOfWorksheets()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Создать объект параметров сохранения Excel
    auto excelSave = MakeObject<ExcelSaveOptions>();

    excelSave->set_MinimizeTheNumberOfWorksheets(true);

    // Сохранить выходной файл в формате XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

Конвертация в формат XLSX

По умолчанию Aspose.PDF использует XML Spreadsheet 2003 для хранения данных. Для конвертации файлов PDF в формат XLSX, Aspose.PDF имеет класс под названием ExcelSaveOptions с ‘Format’. Объект класса ExcelSaveOptions передается в качестве второго аргумента методу Save.

Следующий фрагмент кода показывает процесс конвертации файла PDF в формат XLSX.

Шаги: Конвертация PDF в XLSX на C++ | Шаги: Конвертация PDF в формат Excel XLSX на C++

  1. Создайте экземпляр объекта Document с исходным PDF документом.
  2. Создайте экземпляр ExcelSaveOptions.
  3. Установите формат как ExcelSaveOptions::ExcelFormat::XLSX.
  4. Сохраните в формате XLSX, вызвав метод Document->Save() и передав ему экземпляр ExcelSaveOptions.
void ConvertPDFtoExcel_Advanced_SaveXLSX()
{
    std::clog << __func__ << ": Start" << std::endl;
    // Строка для имени пути
    String _dataDir("C:\\Samples\\Conversion\\");

    // Строка для имени файла
    String infilename("sample.pdf");
    String outfilename("PDFToExcel.xls");

    // Открыть документ
    auto document = MakeObject<Document>(_dataDir + infilename);

    // Создать объект параметров сохранения Excel
    auto excelSave = MakeObject<ExcelSaveOptions>();

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

    // Сохраните выходные данные в формате XLS
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

См. также

Эта статья также охватывает следующие темы. Коды такие же, как и выше.

Формат: Формат Microsoft Excel XLS

Формат: Формат Microsoft Excel XLSX

Формат: XLS

Формат: XLSX