Smart Markerパラメータ
デザイナースプレッドシートとスマートマーカー
デザイナースプレッドシートは、視覚的な書式、数式、スマートマーカーを含む標準のExcelファイルです。プロジェクトからの情報や関連連絡先の情報など、1つ以上のデータソースを参照するスマートマーカーを含めることができます。スマートマーカーは、情報を配置したいセルに書き込まれます。
すべてのスマートマーカーは、&=で始まります。データマーカーの例として、&=Party.FullNameがあります。データマーカーが1つ以上のアイテム(例:完全な行)の結果を得る場合、新しい情報に対応するために自動的に次の行が移動されます。したがって、サブトータルや合計は、挿入されたデータに基づいて計算を行うために、データマーカーの直後の行に配置することができます。挿入された行で計算を行うには、動的な数式を使用します。
スマートマーカーには、ほとんどの情報のデータソースとフィールド名から成るものがあります。特別な情報は変数や変数配列を伴ったスマートマーカーにも渡される場合があります。変数は常に1つのセルのみに入り、変数配列は複数のセルに入ることがあります。セルごとに1つのデータマーカーしか使用しないでください。未使用のスマートマーカーは削除されます。
スマートマーカーにはパラメータも含めることができます。パラメータを使用すると、情報のレイアウト方法を変更することができます。パラメータは、カンマで区切られたリストとしてスマートマーカーの末尾に追加されます。
スマートマーカーオプション
&=DataSource.FieldName
&=[Data Source].[Field Name]
&=$VariableName
&=$VariableArray
&==DynamicFormula
&=&=RepeatDynamicFormula
Smart Markerパラメータ
以下のパラメータが許可されています:
- 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。
次のスクリーンショットは、交互の行にデータを挿入する方法を示しています。
| テンプレートファイル | 出力ファイル |
|---|---|
![]() |
![]() |
動的な式
動的な式を使用すると、エクスポートプロセス中に挿入される行を参照する式をセルに挿入できます。 動的な式は、挿入された行ごとに繰り返すことができるか、データマーカーが配置されたセルのみを使用できます。
動的な式には、次の追加のオプションがあります:
- r - 現在の行番号。
- 2, -1 - 現在の行番号へのオフセット。
例:
&=&=B{-1}/C{-1}~(skip:1)動的な数式のマーカーでは、「-1」は、除算操作に設定されるB列とC列への現在の行へのオフセットを示し、スキップパラメーターは1行です。さらに、以下の文字を指定する必要があります:
"~"動的な数式で追加のパラメーターを適用するための区切り文字。
次のスクリーンショットは、繰り返しの動的な数式とその結果のExcelワークシートを示しています。
| テンプレートファイル | 出力ファイル |
|---|---|
![]() |
![]() |
| セル"C1"には、式**= A1*B1**が含まれ、セル"C2"には**= A2*B2**、セル"C3"には**= A3*B3**が含まれています。 |
スマートマーカーの処理は非常に簡単です。 次の例コードは、スマートマーカーで動的式を使用する方法を示しています。 テンプレートファイルを読み込んでテストデータを作成し、マーカーを処理してセルにデータを埋めます。
SmartMarkersで動的数式や変数を使用する方法
時には、SmartMarkersで動的数式や変数を使用する必要があります。動的数式には、区切り文字(~)を追加してください。Aspose.Cellsでは、SmartMarkersで動的数式や変数を使用することが可能です。以下のファイルとコード例を参照してください: テンプレートファイル、 従業員データjson、および生成されたExcelファイルのスクリーンショット。
| 変数を示すtemplate.xlsxファイルの最初のシート |
|---|
![]() |
| SmartMarkersを示すtemplate.xlsxファイルの2番目のシート |
|---|
![]() |
| 出力Excelファイルのスクリーンショット |
|---|
![]() |
以下はJSONデータです:
{
"RootData": {
"Directors": [
{
"FirstName": "director first 1",
"id": "director id 1",
"LastName": "director last 1",
"MiddleName": "director middle 1",
"Reportees": [
{
"City": "aaa city",
"Department": "aaa department",
"FirstName": "first aaa",
"GST": "Yes",
"id": "aaa",
"ITR": "No",
"LastName": "last aaa",
"MiddleName": "middle aaa"
},
{
"City": "bbb city",
"Department": "bbb department",
"FirstName": "first bbb",
"GST": "Yes",
"id": "bbb",
"ITR": "Yes",
"LastName": "last bbb",
"MiddleName": "middle bbb"
},
{
"City": "ccc city",
"Department": "ccc department",
"FirstName": "first ccc",
"GST": "No",
"id": "ccc",
"ITR": "No",
"LastName": "last ccc",
"MiddleName": "middle ccc"
},
{
"City": "ddd city",
"Department": "ddd department",
"FirstName": "first ddd",
"GST": "No",
"id": "ddd",
"ITR": "No",
"LastName": "last ddd",
"MiddleName": "middle ddd"
},
{
"City": "eee city",
"Department": "eee department",
"FirstName": "first eee",
"GST": "No",
"id": "eee",
"ITR": "No",
"LastName": "last eee",
"MiddleName": "middle eee"
}
]
},
{
"FirstName": "director first 2",
"id": "director id 2",
"LastName": "director last 2",
"MiddleName": "director middle 2",
"Reportees": [
{
"City": "eee city",
"Department": "eee department",
"FirstName": "first eee",
"GST": "Yes",
"id": "eee",
"ITR": "No",
"LastName": "last eee",
"MiddleName": "middle eee"
},
{
"City": "fff city",
"Department": "fff department",
"FirstName": "first fff",
"GST": "No",
"id": "fff",
"ITR": "No",
"LastName": "last fff",
"MiddleName": "middle fff"
}
]
}
],
"DOB": "2025-02-28",
"EntityCin": "EntityCin Test",
"EntityName": "EntityName Test",
"FirstName": "FirstName Test",
"LastName": "LastName Test",
"MiddleName": "MiddleName Test",
"SSN": "11111111",
"CtcPerEmployee": 100000,
"CountOfEmployees": 132
}
}
以下の例は、これがどのように動作するかを示しています。






