構造化データを洗練されたドキュメントに変換する自動化は、バックエンドサービスで頻繁に求められます。 Aspose.Cells Cloud SDK for Node.js は、開発者が Excel ワークブックを操作し、強力な REST API を介してさまざまな形式に変換できるようにします。このガイドでは、SDK を使用して XML データを PDF にインポート する方法を学びます。認証からファイルのアップロード、XML マッピング、PDF 生成まで、すべてをカバーします。

前提条件とセットアップ

開始する前に、以下のものが揃っていることを確認してください:

  • Node.js 14 以上がマシンにインストールされていること。
  • Aspose Cloud アカウントとクライアント ID、クライアント シークレット。
  • Node.js スクリプトを実行できるターミナルまたは IDE へのアクセス。

Aspose.Cells Cloud SDK for Node.js をインストールする:

npm install asposecellscloud

次に、認証情報を構成します。以下のスニペットはリファレンス実装から直接取得したものです:

const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);

公式リリースページから SDK パッケージをダウンロードする必要があります: Aspose.Cells Cloud SDK for Node.js Download。 前提条件が整ったら、実装に進むことができます。

Node.jsでXMLデータをPDFにインポートする: ステップバイステップの手順

ステップ 1: 必要なモジュールをロードし、API クライアントを作成する

まず、必要なモジュールをインポートし、API クライアントをインスタンス化します。

const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');

const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);

ステップ 2: ファイルアップロード用ヘルパー関数を定義する

ローカルファイルを Aspose Cloud ストレージにアップロードする再利用可能な関数を作成します。

async function uploadFile(localFilePath, remoteFileName) {
    const fileContent = fs.readFileSync(localFilePath);
    await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}

ステップ 3: ワークブックと XML ファイルをアップロード

Excel テンプレートと XML データ ファイルをクラウド ストレージの Temp フォルダーにアップロードします。

await uploadFile(path.join(localFolder, workbookName), workbookName);
await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);

ステップ 4: ワークシートへの XML データのインポート

XML ファイルを対象のワークシートにマッピングします。これは import XML data to PDF ワークフローの核心です。

const importXmlRequest = {
    xmlFile: `${remoteFolder}/${xmlDataName}`,
    xmlMapIndex: 0,
    importDataOnly: true,
    importDataOnlySpecified: true
};
await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);

Step 5: 更新されたワークブックを PDF に変換してダウンロード

最後に、ワークブックを PDF として保存し、ファイルを取得します。

const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);

これらの手順が完了すると、XML データが正常にインポートされ、生成された PDF が使用できるようになります。

完全なコード例: 詳細コメント付きで XML データを PDF にインポート

以下のコードは、エンドツーエンドの完全なプロセスを示しています。

const fs = require('fs');
const path = require('path');
const { CellsApi, Configuration, ApiClient } = require('asposecellscloud');

// ---- Configuration ---------------------------------------------------------
const clientId = 'YOUR_CLIENT_ID';
const clientSecret = 'YOUR_CLIENT_SECRET';
const config = new Configuration(clientId, clientSecret);
const apiClient = new ApiClient(config);
const cellsApi = new CellsApi(apiClient);

// ---- File definitions -------------------------------------------------------
const localFolder = __dirname;
const remoteFolder = 'Temp';                     // folder in Aspose Cloud storage
const workbookName = 'template.xlsx';            // existing workbook template
const xmlDataName = 'data.xml';                  // XML file containing data
const outputPdfName = 'result.pdf';              // final PDF name

// ---- Helper functions -------------------------------------------------------
async function uploadFile(localFilePath, remoteFileName) {
    const fileContent = fs.readFileSync(localFilePath);
    await cellsApi.uploadFile(`${remoteFolder}/${remoteFileName}`, fileContent);
}

async function importXml() {
    const importXmlRequest = {
        xmlFile: `${remoteFolder}/${xmlDataName}`,
        xmlMapIndex: 0,
        importDataOnly: true,
        importDataOnlySpecified: true
    };
    await cellsApi.importXML(workbookName, 'Sheet1', importXmlRequest, remoteFolder);
}

async function convertToPdf() {
    const remotePdfPath = `${remoteFolder}/${outputPdfName}`;
    await cellsApi.saveWorkbook(workbookName, 'pdf', remotePdfPath, remoteFolder);
    const downloadResponse = await cellsApi.downloadFile(remotePdfPath);
    fs.writeFileSync(path.join(localFolder, outputPdfName), downloadResponse.body);
}

// ---- Main execution ---------------------------------------------------------
(async () => {
    try {
        // Upload required files to Aspose Cloud storage
        await uploadFile(path.join(localFolder, workbookName), workbookName);
        await uploadFile(path.join(localFolder, xmlDataName), xmlDataName);

// Import XML data into the workbook
        await importXml();

// Convert the updated workbook to PDF and download locally
        await convertToPdf();

console.log('XML data imported and PDF generated successfully.');
    } catch (err) {
        console.error('Error:', err.response ? err.response.text : err.message);
    }
})();

注: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパスや設定値を実際の環境に合わせて更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメント を参照するか、サポートチーム にお問い合わせください。

cURL と REST API を使用した XML から PDF への変換

以下は、Node.js のコードを書かずに同じ操作を実行する cURL ベースのワークフローです。

  1. アクセストークンを取得する
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Excelテンプレートをアップロード
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/template.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@template.xlsx"
  1. XML データ ファイルをアップロード
curl -X PUT "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/data.xml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@data.xml"
  1. ワークシートに XML をインポートする
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/worksheets/Sheet1/importxml" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "xmlFile": "Temp/data.xml",
           "xmlMapIndex": 0,
           "importDataOnly": true,
           "importDataOnlySpecified": true
         }'
  1. ワークブックを PDF に変換する
curl -X POST "https://api.aspose.cloud/v3.0/cells/template.xlsx/save?format=pdf&outPath=Temp/result.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  1. 生成された PDF をダウンロード
curl -X GET "https://api.aspose.cloud/v3.0/cells/storage/file/Temp/result.pdf" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o result.pdf

パラメータの完全な一覧と追加オプションについては、API リファレンスをご覧ください。

XML から PDF へのオプションの微調整

インポート操作では、XML データのマージ方法を制御できる複数のフラグが提供されます。

  • importDataOnly - true に設定すると、データ行のみがインポートされ、既存の書式設定はそのまま残ります。
  • importDataOnlySpecified - オプションを有効にするには、importDataOnly と共に true に設定する必要があります。
  • xmlMapIndex - インポートに使用する XML マップ(複数定義されている場合)を選択します。

これらのオプションは、前に使用した importXmlRequest オブジェクトですでに示されています:

const importXmlRequest = {
    xmlFile: `${remoteFolder}/${xmlDataName}`,
    xmlMapIndex: 0,
    importDataOnly: true,
    importDataOnlySpecified: true
};

saveWorkbook メソッドに PdfSaveOptions オブジェクトを渡すことで、ページサイズ、向き、画像品質などの PDF 固有の設定を調整することもできます。利用可能なオプションの全リストについては、API リファレンス を参照してください。

結論

このチュートリアルに従うことで、Aspose.Cells Cloud SDK for Node.js を使用した XML データを PDF にインポート の完全なソリューションが手に入ります。 アプローチはシンプルな SDK 呼び出しとオプションの cURL コマンドを組み合わせており、フルスタックの Node.js 実装でも軽量な REST 統合でも、好みに応じた柔軟性を提供します。 クライアント資格情報を安全に保管し、本番環境では一時ライセンスまたは有料ライセンスの適用を検討してください。 一時ライセンスは 一時ライセンスページ から取得でき、製品ページで価格オプションを確認できます。 コーディングを楽しんでください!

FAQs

  • Aspose.Cells Cloud SDK for Node.js を使用した XML データの PDF へのインポートはどのように機能しますか?
    SDK は Excel テンプレートと XML ファイルを Aspose Cloud ストレージにアップロードし、XML データをワークシートにマッピングしてから、ブックを PDF として保存します。 詳細な API リファレンスについては、Aspose.Cells Cloud SDK for Node.js をご覧ください。

  • XML データを PDF にインポートする際に PDF 出力をカスタマイズできますか?
    はい、saveWorkbook メソッドはページの向き、画像品質、圧縮レベルなどのフォーマット固有のオプションを受け入れます。これらの設定は、API リファレンス に記載されているようにリクエスト ペイロードで調整してください。

  • What authentication method is required for the REST calls?
    すべてのリクエストは、Aspose Cloud 認証エンドポイントから取得した OAuth 2.0 アクセストークンを含める必要があります。クライアント ID とクライアント シークレットを使用して、API を呼び出す前にトークンをリクエストしてください。

  • プロダクションデータに影響を与えずにプロセスをテストする方法はありますか?
    一時ライセンスページ(https://purchase.aspose.com/temporary-license/)で提供されている一時ライセンスを使用して、非プロダクション環境でコードを実行できます。

Read More