此為 Dynamics AX (X++/MorphX) 風格程式碼,示範使用 COM 自動化將資料表記錄匯出至 Excel。適用於 AX 開發環境。
void clicked()
{
#Excel
HWND HWND;
SysExcelApplication excel;
SysExcelWorkbooks books;
SysExcelWorkbook book;
SysExcelWorksheets sheets;
SysExcelWorksheet sheet;
SysExcelRange columns;
SysExcelRange column;
SysExcelCells cells;
SysExcelCell cell;
SysExcelStyle ExcelStyle;
SysExcelFont ExcelFont;
SysExcelFormatCondition FormatCondition;
// 定義要導出的表
BeMarked _mark;
int i = 1;
// 建構 Excel 結構
excel = SysExcelApplication::construct();
books = excel.workbooks();
book = books.add();
sheets = book.worksheets();
sheet = sheets.itemFromNum(1); // 控制第幾個工作表
sheet.name("abc");
super();
// 寫入欄位名 (標題列)
sheet.cells().item(1, 1).value("STR"); // item(row, column)
sheet.cells().item(1, 2).value("INT");
sheet.cells().item(1, 3).value("Choose");
sheet.cells().item(1, 4).value("company");
// 匯入欄位值
while select _mark
{
excel.visible(true);
sheet.cells().item(i + 1, 1).value(_mark.Str);
sheet.cells().item(i + 1, 2).value(_mark.Int);
sheet.cells().item(i + 1, 3).value(_mark.choose);
sheet.cells().item(i + 1, 4).value(_mark.dataAreaId);
i++;
}
}
| 物件 | 用途 |
|---|---|
| SysExcelApplication | Excel 應用程式實例 |
| SysExcelWorkbooks | 活頁簿集合 |
| SysExcelWorkbook | 單一活頁簿 |
| SysExcelWorksheets | 工作表集合 |
| SysExcelWorksheet | 單一工作表 |
| SysExcelCells | 儲存格集合 |
| SysExcelCell | 單一儲存格 |
| SysExcelRange | 儲存格區域 |
| SysExcelStyle/Font | 樣式/字型設定 |
construct() 建立 Excel Application 物件workbooks().add() 建立新活頁簿worksheets().itemFromNum(1) 取得第一個工作表cells().item(row, col).value() 寫入儲存格 (1-based 索引)while select 遍歷資料表記錄excel.visible(true) 顯示 Excel 視窗 (可選)SysExcelCommaTextIO 或 ExcelXmlDocument#Excel 巨集定義相關常數
using (var package = new ExcelPackage())
{
var ws = package.Workbook.Worksheets.Add("Sheet1");
ws.Cells[1, 1].Value = "STR";
ws.Cells[1, 2].Value = "INT";
// ...
int row = 2;
foreach (var record in records)
{
ws.Cells[row, 1].Value = record.Str;
ws.Cells[row, 2].Value = record.Int;
// ...
row++;
}
package.SaveAs(new FileInfo("export.xlsx"));
}