C++でPDFをExcelに変換

概要

この記事では、C++を使用してPDFをExcel形式に変換する方法を説明します。以下のトピックをカバーしています。

形式: XLS

形式: XLSX

形式: Microsoft Excel XLS形式

形式: Microsoft Excel XLSX形式

- [C++ PDFからExcelへの変換](#cpp-pdf-to-excel-xlsx)
- [C++ PDFをExcelに変換する](#cpp-pdf-to-excel-xlsx)
- [C++ PDFファイルをExcelに変換する方法](#cpp-pdf-to-excel-xlsx)

この記事で取り上げるその他のトピック
- [関連項目](#see-also)

## C++ PDFからExcelへの変換

**Aspose.PDF for C++** は、PDFファイルをExcel形式に変換する機能をサポートしています。

Aspose.PDF for C++はPDFの操作コンポーネントであり、PDFファイルをExcelワークブック(XLSファイル)にレンダリングする機能を導入しました。この変換中に、PDFファイルの各ページがExcelワークシートに変換されます。

PDFファイルを<abbr title="Microsoft Excel Spreadsheet">XLS</abbr>形式に変換するために、Aspose.PDFにはExcelSaveOptionsというクラスがあります。ExcelSaveOptionsクラスのオブジェクトは、Document.Save(..)コンストラクタの第二引数として渡されます。

次のコードスニペットは、Aspose.PDF for C++を使用してPDFファイルをXLS形式に変換するプロセスを示しています。

<a name="cpp-pdf-to-xls" id="cpp-pdf-to-xls"><strong>手順: C++でPDFをXLSに変換する</strong></a> | <a name="cpp-pdf-to-excel-xls" id="cpp-pdf-to-excel-xls"><strong>手順: C++でPDFをExcel XLS形式に変換する</strong></a>

1. ソースPDFドキュメントを使用して[Document](https://reference.aspose.com/pdf/cpp/class/aspose.pdf.document)オブジェクトのインスタンスを作成します。
2. **Document->Save()** メソッドを呼び出して_XLS_形式で保存します。

```cpp
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形式に変換する際、出力ファイルの最初の列として空の列が追加されます。 ExcelSaveOptions クラスの InsertBlankColumnAtFirst オプションは、この列を制御するために使用されます。そのデフォルト値は true です。

void ConvertPDFtoExcel_Advanced_InsertBlankColumnAtFirst()
{
    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);

    // ExcelSave Option オブジェクトをインスタンス化
    auto excelSave = MakeObject<ExcelSaveOptions>();

    // ExcelSaveOptions クラスの InsertBlankColumnAtFirst オプションは、この列を制御するために使用されます。そのデフォルト値は true です。
    excelSave->set_InsertBlankColumnAtFirst(false);

    // 出力を XLS 形式で保存
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

PDF を単一の Excel ワークシートに変換

多数のページを含む PDF ファイルを XLS にエクスポートする場合、各ページは Excel ファイルの異なるシートにエクスポートされます。 これは、MinimizeTheNumberOfWorksheets プロパティがデフォルトで false に設定されているためです。出力 Excel ファイル内のすべてのページを 1 つのシートにエクスポートするには、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);

    // ExcelSave オプションオブジェクトをインスタンス化
    auto excelSave = MakeObject<ExcelSaveOptions>();

    excelSave->set_MinimizeTheNumberOfWorksheets(true);

    // 出力を XLS 形式で保存
    document->Save(outfilename, excelSave);
    std::clog << __func__ << ": Finish" << std::endl;
}

XLSX 形式への変換

デフォルトでは、Aspose.PDF はデータを保存するために XML スプレッドシート 2003 を使用します。 PDFファイルをXLSX形式に変換するために、Aspose.PDFにはExcelSaveOptionsの「Format」というクラスがあります。ExcelSaveOptionsクラスのオブジェクトは、Saveメソッドの第二引数として渡されます。

次のコードスニペットは、PDFファイルをXLSX形式に変換するプロセスを示しています。

ステップ: C++でPDFをXLSXに変換 | ステップ: C++でPDFをExcel XLSX形式に変換

  1. ソースPDFドキュメントを持つDocumentオブジェクトのインスタンスを作成します。
  2. インスタンスを作成します ExcelSaveOptions
  3. フォーマットを ExcelSaveOptions::ExcelFormat::XLSX に設定します。
  4. Document->Save() メソッドを呼び出し、ExcelSaveOptions のインスタンスを渡して XLSX 形式で保存します。
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);

    // ExcelSaveオプションオブジェクトをインスタンス化
    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