Aspose.Cells Smart markersテンプレートに基づくExcelのエクスポート


Aspose.Cellsは、Excelテンプレートを事前に定義し、データを埋め込むことができます(公式ドキュメント:http://www.aspose.com/docs/display/cellsjava/Smart+Markers).
 
設定したテンプレートは標準のExcelファイルで、可視化されたフォーマット、式、およびタグ(smart markers)が含まれており、複数のデータソースを参照できます.
サポートされているタグ(Smart Marker Options)
&=DataSource.FieldNameデータ要素はICellsDataTableまたはJavaBean&=[Data Source]である.[Field Name]データソースがResultSet&=$VariableNameの変数&=$VariableArray配列変数&=DynamicFormulaは不明&=&=&=RepeatDynamicFormula動的計算
 
この2つのタグの使い方について説明します
1、&=$VariableName 1変数2、&=$VariableArray配列変数
Aspose.Cells Smart markers 基于模板导出Excel_第1张图片
Javaコード
     String path = "SmartMarkerDesigner.xls";
        InputStream inputStream = ClassLoader.getSystemResourceAsStream(path);
        Workbook wb = new Workbook(inputStream);
        WorkbookDesigner designer = new WorkbookDesigner();
        designer.setWorkbook(wb);
        designer.setDataSource("Variable", "Single Variable");
        designer.setDataSource("MultiVariable", new String[]
        {
                "Variable 1", "Variable 2", "Variable 3"
        });
        designer.setDataSource("MultiVariable2", new String[]
        {
                "Skip 1", "Skip 2", "Skip 3"
        });
        designer.setDataSource("Array1Dim", new String[]
        {
                "A1", "A2", "A3"
        });
        designer.setDataSource("Array2Dim", new String[][]
        {
                {
                        "A11", "A12", "A13"
                },
                {
                        "A21", "A22", "A23", "A24"
                },
                {
                        "A31", "A32",
                },
        });

Aspose.Cells Smart markers 基于模板导出Excel_第2张图片
 
JavaBeanの使い方をご紹介します
&=DataSource.FieldNameデータ要素はICellsDataTableまたはJavaBean
&=Person.name(bean)この場所にbeanを付ける必要があることに注意してください

ここで&=&=C{r}*D{r}は動的計算のタグである
&=&=構造面と1つの式rは現在の行を表し,C{r}*D{r}はループ時に1行も計算されない.
 
上の例ではidという列でグループ化Grouping Data
normal - The group by field(s) value is not be repeated for the corresponding records in the column; instead they are printed once per data group.
グループ化されたカラムはループ出力されず、一度だけ出力されます.
 
merge - The same behavior as for the normal parameter, except that it merges the cells in the group by field(s) for each group set.
normalと同じですが、セルをマージします.
 
repeat - The group by field(s) value is repeated for the corresponding records.
グループ化された列はループ出力されます
 
&=subtotal9:Person.idはその列の下に置かれ、idに従ってパケット統計が行われる.
Aspose.Cells Smart markers 基于模板导出Excel_第3张图片
 
 
 
または&=Employee.money(subtotal 9:Employee.id)と書いてもいいので、idに従ってグループ統計を行います

 
Aspose.Cells Smart markers 基于模板导出Excel_第4张图片
 
subtotalN(Nの値は、1~11の平均行数の合計行数の最大値の最小値の総和などであってもよい.)
Performs a summary operation for a specified field data related to a group by field. The N represents numbers between 1 and 11 which specify the function used when calculating subtotals within a list of data. (1=AVERAGE, 2=COUNT, 3=COUNTA, 4=MAX, 5=MIN,...9=SUM etc.) Refer to the Subtotal reference in Microsoft Excel's help for further details.
The format actually states as:subtotalN:Ref where Ref refers to the group by column.
 
&=Products.Units(subtotal9:Products.ProductID) specifies summary function upon Units field with respect to the ProductID field in the Products table.
&=Tabx.Col3(subtotal9:Tabx.Col1) specifies summary function upon the Col3 field group by Col1 in the table Tabx.
&=Table1.ColumnD(subtotal9:Table1.ColumnA&Table1.ColumnB) specifies summary function upon ColumnD field group by ColumnA and ColumnB in the table Table1.