首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

資料表匯出 Excel 完整程式碼 (X++/MorphX 風格)

     編輯:關於.NET

程式碼說明

此為 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++;
    }
}

關鍵物件模型

物件用途
SysExcelApplicationExcel 應用程式實例
SysExcelWorkbooks活頁簿集合
SysExcelWorkbook單一活頁簿
SysExcelWorksheets工作表集合
SysExcelWorksheet單一工作表
SysExcelCells儲存格集合
SysExcelCell單一儲存格
SysExcelRange儲存格區域
SysExcelStyle/Font樣式/字型設定

核心流程

  1. construct() 建立 Excel Application 物件
  2. workbooks().add() 建立新活頁簿
  3. worksheets().itemFromNum(1) 取得第一個工作表
  4. cells().item(row, col).value() 寫入儲存格 (1-based 索引)
  5. while select 遍歷資料表記錄
  6. excel.visible(true) 顯示 Excel 視窗 (可選)

注意事項

  • 需在 AX 客戶端機器安裝 Excel
  • COM 自動化效能較慢,大量資料建議用 SysExcelCommaTextIO 或 ExcelXmlDocument
  • 記得釋放 COM 物件 (AX 執行階段會自動處理)
  • #Excel 巨集定義相關常數

.NET 對應寫法參考 (EPPlus)


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"));
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved