廣告

2024 年 12 月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

彙整

DELPHI寫入EXCEL時,寫入速度緩慢問題

最近在修改使用者提出 EXCEL 報表欄位,發現有幾支 procedure 轉出 EXCEL 的速度非常龜,而這幾支 procedure 是前輩所留下的產物,跟自己最近寫的轉 EXCEL 報表速度上差很多,以為是卡在SQL查詢,如果查詢條件KEY值給不齊全,有可能因為資料過多,查詢變很慢,但是測試後應該不是SQL查詢的問題,再對照前輩與自己的程式,感覺不出差異,最後看到 DELPHI 內設定EXCEL時前面通常會有一些基本設定,發現了這幾支程式都有設定列印範圍,姑且註解掉試試看,果然……………兇手就是它!

PageSetup.PrintArea := ‘A:R’;  //設定列印範圍

建議把它移到資料轉完後,最後在給上這個參數就好了。

EXCEL儲存格的IF用法

IF(B2="","","123")

表示 B2如果等於空白,則目前所在的儲存格帶入空白,否則帶入123

簡單公式實現Excel自動編號

滿實用的!

 

文章出處:http://community.kingdee.com/pages/checksun/blog/archive/2008/08/12/313745.aspx

    很多時候都需要對Excel中的數據加一列序號,但由於數據的添加、刪除,導致經常要重新填充序號,非常不便,在網上看到用簡單公式即可實現自動編號,非常方便。

    我們知道,在Word中有個自動編號的功能,在Excel中我們可以使用函數來實現這個功能。

    點擊A2單元格輸入公式:=IF(B2="","",COUNTA($B$2:B2)),然後把鼠標移到A2單元格的右下方,鼠標就會變成十字形狀,按住拖拽填充到A列下面的單元格中,這樣我們在B列輸入內容時,A列中就會自動輸入序號了.            我們在打印的時候,有時需要把部分行隱藏起來進行打印,結果卻會發現序號不連續了,這時就需要讓序號調整為連續的。

    在A2單元格輸入公式:=IF(B2="","",SUBTOTAL(103,$B$2:B2)),然後拖拽到A列下面的單元格,這樣就會自動調整序號了。

何為樞紐分析表?

何為樞紐分析表?它最主要的功用何在呢?簡單的說,就是把基本的資料區分整理好後,透過樞紐分析表來達成各個項目的顯示與最後加總的結果,並可快速切換並得到所要知道的資料列表。

還是不懂嗎?那看看下面動態基楚教學吧,應該就會懂了。

http://www.fjweb.fju.edu.tw/tsaur/AVI/Excel/014Data/Excel-01410PivotTable/Excel%E7%9A%84%E6%A8%9E%E7%B4%90%E5%88%86%E6%9E%90%E8%A1%A8.htm

使用DELPHI列印EXCEL所有sheet文件

程式Source

然後重點在於我給了兩個變數 var     ExcelApp,Excelall : Variant;

ExcelApp:=CreateOleObject(‘Excel.Application’); <==創建EXCEL應用程式 ExcelApp.Workbooks.Open(tmpFilename); <==正常開啟檔案 Excelall := ExcelApp.Workbooks.Open(tmpFilename);//可列印全部SHEET <==把開啟檔案的狀態給Excelall

最後再使用 Excelall.printout 即可全部的Sheet都列印出來,關閉Excel還是要用ExcelApp.quit來關,而不是 Excelall.quit。

列印作用中的sheet則用 ==> ExcelApp.ActiveSheet.PrintOut 即可

要預覽可帶參數 ==> Excelall.printout(Copies:=1, Collate:=True, […]