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

C++Builder 6 開發 Office 自動化實戰(二):單元格操作、圖表繪製與高速數據導入

     編輯:關於C++

單元格操作本質:Range 物件模型

Excel 自動化核心是 Range 物件。寫入單元格三步驟:

RangePtr r = EWS4->get_Range(V("A1"), V("A1"));  // 1. 獲取範圍
r->set_Value(V("Species No"));                    // 2. 設置值

批量寫入同理,先獲取區塊範圍再賦值。數據庫導出本質是遍歷記錄集逐單元格寫入,速度較慢。

格式化控制:字體、列寬、自動換行

r = EWS4->get_Range(V(CellRef), V(CellRef2));
r->Font->set_Name(V("Arial"));           // 字體
r->get_Columns()->AutoFit();             // 自動列寬
r->set_WrapText(V(true));                // 自動換行

圖片插入:剪貼板中轉技巧

Excel 無直接圖片寫入 API,需借助剪貼板:

Graphics::TBitmap *Bitmap = new Graphics::TBitmap();
Bitmap->Assign(Table1Graphic);                    // 1. 數據集圖形字段 → Bitmap
unsigned int DataHandle; HPALETTE APalette; unsigned short MyFormat;
Bitmap->SaveToClipboardFormat(MyFormat, DataHandle, APalette); // 2. Bitmap → 剪貼板格式
Clipboard()->SetAsHandle(MyFormat, DataHandle);   // 3. 放入系統剪貼板
EWS4->Paste(V(LPDISPATCH(r)), TNP, 0);            // 4. 粘貼到 Range 位置

注意:Paste 只定位左上角,圖片不會自適應單元格,列寬需單獨調整。

數據繪製圖表:Chart 物件操作

RangePtr r = EWS4->get_Range(V("B1"), V("C" + IntToStr(Count-1)));
EC->ConnectTo(EWB->Sheets->Add(TNP, TNP, V(1), V(xlChart), 0)); // 創建圖表頁
EC->set_ChartType(xlColumnClustered);        // 簇狀柱狀圖
EC->SetSourceData(r, V(xlColumns));          // 數據源
EC->ChartTitle[0]->set_Caption(L"Animal Data Report");
EC->set_Name(L"Animal Data Chart");
EC->set_HasDataTable(true);                  // 顯示數據表
EC->set_HasLegend(0, false);                 // 隱藏圖例

遺留問題:X/Y 軸標題設置運行時報錯,作者轉向 Interop 開發未深究。

高速數據導入:TExcelQueryTable 實現數量級提速

逐單元格寫入極慢,TExcelQueryTable 直接從數據庫批量填充:

EWS1->Activate();
String ConnStr = "ODBC;DSN=testdbf;UID='';PWD=''";
String SQL = "SELECT * FROM animals";
RangePtr R = EWS1->get_Range(V("A1"), V("A1"));
EQT->ConnectTo(EWS1->QueryTables->Add(V(ConnStr), R, V(SQL)));
EQT->Refresh();  // 一次性填充所有數據

三要素:連接字符串、SQL 查詢、起始單元格。速度提升顯著,適合報表導出場景。

總結

BCB6 Server 控件提供強類型、OO 風格封裝,優於 OLE Automation 弱類型調用。掌握 Excel 宏記錄、VBA 帮助、BCB 頭文件三大查閱途徑,事半功倍。

本文配套源碼下載
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved