全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3665
推到 Plurk!
推到 Facebook!

有關ExcelWorksheet.Columns使用問題

尚未結案
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-02 19:13:34 IP:210.66.xxx.xxx 未訂閱
我在站上的一些討論有關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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-02 21:54:10 IP:61.230.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-03 09:10:56 IP:210.66.xxx.xxx 未訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-03 09:38:07 IP:210.68.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-04 10:53:42 IP:210.66.xxx.xxx 未訂閱
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-04 14:02:13 IP:210.68.xxx.xxx 未訂閱
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-04 17:14:31 IP:61.30.xxx.xxx 未訂閱
你好: 這可以解決你的問題,試試看吧。
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-04 19:35:59 IP:210.66.xxx.xxx 未訂閱
謝謝Yachange!我後來決定用您所提的ComObj動態建立Excel方式,看起來這種方式比較好使用,雖然有時候會出現錯誤訊息,但可以用其他方式解決,所以我把我的程式改成您所建議的方式了,謝謝! 也謝謝ha0009的建議,但是您提的方式和Yachange的方式應該是一樣的,所以分數就給Yachange了,再一次謝謝您的協助! Ian
系統時間:2024-05-17 16:33:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!