Pythonを介してAspose.Cells for Javaを使ってスマートマーカーでデータをスマートにインポートして配置する

紹介

スマートマーカーは、Aspose.Cellsにどの情報をMicrosoft Excelのデザイナースプレッドシートに配置するかを知らせるために使用されます。スマートマーカーを使用すると、特定の情報と書式を含むテンプレートを作成できます。

デザイナースプレッドシートとスマートマーカー

デザイナースプレッドシートは、視覚的な書式、数式、スマートマーカーを含む標準のExcelファイルです。プロジェクトからの情報や関連連絡先の情報など、1つ以上のデータソースを参照するスマートマーカーを含めることができます。スマートマーカーは、情報を配置したいセルに書き込まれます。

すべてのスマートマーカーは、&=で始まります。データマーカーの例として、&=Party.FullNameがあります。データマーカーが1つ以上のアイテム(例:完全な行)の結果を得る場合、新しい情報に対応するために自動的に次の行が移動されます。したがって、サブトータルや合計は、挿入されたデータに基づいて計算を行うために、データマーカーの直後の行に配置することができます。挿入された行で計算を行うには、動的な数式を使用します。

スマートマーカーには、ほとんどの情報のデータソースフィールド名から成るものがあります。特別な情報は変数や変数配列を伴ったスマートマーカーにも渡される場合があります。変数は常に1つのセルのみに入り、変数配列は複数のセルに入ることがあります。セルごとに1つのデータマーカーしか使用しないでください。未使用のスマートマーカーは削除されます。

スマートマーカーにはパラメータも含めることができます。パラメータを使用すると、情報のレイアウト方法を変更することができます。パラメータは、カンマで区切られたリストとしてスマートマーカーの末尾に追加されます。

スマートマーカーオプション

&=DataSource.FieldName &=[Data Source].[Field Name] &=$VariableName &=$VariableArray &==DynamicFormula &=&=RepeatDynamicFormula

パラメータ

以下のパラメータが許可されています:

  • noadd - データに合わせて追加の行を追加しません。
  • skip:n - 各データ行ごとにn行をスキップします。
  • ascending:nまたはdescending:n - スマートマーカーのデータをソートします。nが1の場合、列はソーターの最初のキーです。データはデータソースの処理後に並べ替えられます。例えば:&=Table1.Field3(ascending:1)。
  • horizontal - 上下ではなく左から右にデータを書き込みます。
  • numeric - 可能であればテキストを数値に変換します。
  • shift - データに合わせて余分な行や列を作成し、下方に移動したり右に移動したりします。シフトパラメータは、Microsoft Excelにおいて同様の方法で機能します。たとえば、Microsoft Excelでは、セルの範囲を選択し、右クリックして挿入を選択し、セルを下方にシフトセルを右にシフトなどを指定するときと同じように機能します。要するに、shiftパラメータは垂直/通常(上から下)または水平(左から右)のスマートマーカーに対して同じ機能を果たします。
  • copystyle - ベースセルのスタイルをその列のすべてのセルにコピーします。

パラメーターnoaddとskipを組み合わせることで、交互に行にデータを挿入できます。テンプレートは上から下に処理されるため、交互の行の前に余分な行が挿入されるのを避けるために、最初の行にnoaddを追加するべきです。

複数のパラメータを持つ場合は、コンマで区切りますが、スペースは入れません:parameterA,parameterB,parameterC。

次のスクリーンショットは、交互の行にデータを挿入する方法を示しています。

テンプレートファイル 出力ファイル
todo:image_alt_text todo:image_alt_text

動的な式

動的な式を使用すると、エクスポートプロセス中に挿入される行を参照する式をセルに挿入できます。 動的な式は、挿入された行ごとに繰り返すことができるか、データマーカーが配置されたセルのみを使用できます。

動的な式には、次の追加のオプションがあります:

  • r - 現在の行番号。
  • 2, -1 - 現在の行番号へのオフセット。

例:

 &=&=B{-1}/C{-1}~(skip:1)

動的な数式のマーカーでは、「-1」は、除算操作に設定されるB列とC列への現在の行へのオフセットを示し、スキップパラメーターは1行です。さらに、以下の文字を指定する必要があります:

 "~"

動的な数式で追加のパラメーターを適用するための区切り文字。

次のスクリーンショットは、繰り返しの動的な数式とその結果のExcelワークシートを示しています。

テンプレートファイル 出力ファイル
todo:image_alt_text todo:image_alt_text
セル"C1"には、式**= A1*B1**が含まれ、セル"C2"には**= A2*B2**、セル"C3"には**= A3*B3**が含まれています。

スマートマーカーを処理するのは非常に簡単です。次に示すのは、それをどのように実行するかを示すPython via Javaのコードスニペットです。