有關ExcelWorksheet.Columns使用問題 |
尚未結案
|
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
我在站上的一些討論有關Excel之文章裡找到
ExcelApplication1.ActiveSheet.Columns[1].NumberFormat := '0.00_ ';
這句語法我怎麼試都不行,後來我試了下面這一句語法
ExcelWorksheet1.Columns.NumberFormat := '0.00_ ';
結果是對全部的Column做處理,請問我如果想要像第一句語法一樣,只對第一個Column做處理,請問各位前輩,我應該要怎麼做呢?可以用
ExcelWorksheet1.Columns[1].NumberFormat := '0.00_ ';嗎?
我試過的結果是不行的,請各位前輩幫幫忙!謝謝! Ian
|
yachanga
資深會員 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
Hi l630521您好:
試試看
var ExcelApp: Variant; begin ExcelApp := CreateOleObject( 'Excel.Application' ); ExcelApp.Visible := True; ExcelApp.WorkBooks.Add; ExcelApp.WorkSheets[1].Activate; ExcelApp.Cells[1,1].Value := '13456.1234'; ExcelApp.Cells[1,2].Value := '4444'; ExcelApp.columns['A'].NumberFormatLocal:='#,###.00';這樣只有第一個欄位格式會改變..其他不會 ~悠遊法國號~ |
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
Yachange您好!謝謝您的回答,可是我是用Servers頁籤裡的TExcelApplication、TExcelWorkbook、TExcelWorksheet來處理的,之前參考過Delphi控制Excel2000操作全集
http://delphi.ktop.com.tw/topic.php?topic_id=29495
18) 插入一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
b. ExcelApplication1.ActiveSheet.Columns[1].Insert; 19) 刪除一行或一列:
a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
可是我卻無法這樣執行,請問我是哪裡出錯嗎? Ian
|
yachanga
資深會員 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
Hi l630521您好
我剛剛試了一下沒問題耶
您要不要試一下, 或將您環境原碼PO出來??
var ExcelApp: Variant; begin ExcelApp := CreateOleObject( 'Excel.Application' ); ExcelApp.Visible := True; ExcelApp.WorkBooks.Add; ExcelApp.WorkSheets[1].Activate; ExcelApp.Cells[1,1].Value := '13456.1234'; ExcelApp.Cells[1,2].Value := '4444'; ExcelApp.ActiveSheet.Columns[1].Delete; //第一行會消失~悠遊法國號~ |
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
Yachange您好!不好意思!沒注意到你有回應!
我沒有解釋好讓您沒有看懂我的意思!
您是用
ExcelApp := CreateOleObject( 'Excel.Application' );
我則是用
ExcelApplication1 := TExcelApplication.Create(Self); ExcelWorkbook1 := TExcelWorkbook.Create(Self); ExcelWorksheet1 := TExcelWorksheet.Create(Self); ExcelApplication1.Connect; ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam, 0)); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as _Worksheet); ExcelWorksheet1.Columns.NumberFormat := '0.00_ ';我查Excel裡Visual Basic編輯器裡的說明, ExcelWorksheet1.Columns[1].NumberFormat := '0.00_ '; 應該是可以用的,可是我再看Delphi的Source code裡,卻好像沒有辦法這樣子用,如果用 ExcelWorksheet1.Range['A1', 'A10'].NumberFormat := '0.00 '; 是可以設,但是我找不到直接指定Column1的方法! Ian |
yachanga
資深會員 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
Hi l630521您好:
小弟很好奇的是您怎麼不用ComObj動態建立Excel方式, 而用TEXCELWorkSheet的方法呢???
以小弟淺見, 使用Delphi TEXCELWorkSheet元件可能會因版本不同(D5/D6/D7)而造成不同程度的錯誤訊息... 請參考
使用Delphi 6 's TEXCELWorkSheet 產生EXCEL 之問題
http://delphi.ktop.com.tw/topic.php?topic_id=23006
Delphi 5.0 TEXCELWorkSheet 可是會出現下面的狀況
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24548 我想如果您用
CreateOleObject( 'Excel.Application' );
應該就沒有問題了吧.... 如果您堅持用TEXCELWorkSheet
看看其他大大有沒有好的解法 小弟這邊提供一個很笨的方法 不過可以用
Excel Max Column=256, Max rows=65536
所以
columns 格式
ExcelWorksheet1.Range['A1','A65536'].NumberFormatLocal:='0.00';
rows格式
ExcelWorksheet1.Range['A1','IV1'].NumberFormatLocal:='0.000'; ~悠遊法國號~
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
這可以解決你的問題,試試看吧。
var App: OleVariant; begin ExcelApplication1.Visible [0] := true; ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam, 0)); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.ActiveSheet as _Worksheet); App := ExcelWorkbook1.Application; try App.ActiveSheet.Columns [1].NumberFormat := '0.00_ '; finally App := Null; end; end; |
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |