兩個有關Excel的疑問? |
尚未結案
|
joseph110
一般會員 發表:19 回覆:28 積分:9 註冊:2002-09-05 發送簡訊給我 |
各位同好,我有兩個問題請教大家:
一 Excel欄位為日期格式,如何轉入Table中?(PS:因為Excel日期轉為字串在Table中為數字)
二 以下為我的程式片段,請問為什麼Excel無法結束?
implementation
uses comobj;
{$R *.DFM} procedure TForm1.Button1Click(Sender: TObject);
var msexcel:variant;
i,j,k,l,m,n,recno,tmp_reba,tmp_rebatax,row,col:integer;
tmp_date:string[8];
begin
k:=0;
l:=0;
m:=0;
n:=0;
recno:=1;
j:=filelistbox1.items.count;
table1.Active:=false;
table1.EmptyTable;
table1.Active:=true;
for j:=0 to j-1 do
begin
listbox1.itemindex:=j;
filelistbox1.itemindex:=j;
msexcel:=createoleobject('excel.application');
msexcel.workbooks.open(filelistbox1.filename);
row:=msexcel.workbooks[1].worksheets[1].usedrange.rows.count;
col:=msexcel.workbooks[1].worksheets[1].usedrange.columns.count;
for i:=2 to row do
begin
if trim(msexcel.workbooks[1].worksheets[1].cells[i,2])<>'' then
begin
table1.Append;
table1.FieldByName('ban').asstring:='12345678';
table1.FieldByName('serial_no').asfloat:=recno;
table1.FieldByName('saleamt').asfloat:=msexcel.workbooks[1].worksheets[1].cells[i,5];
table1.FieldByName('buitax').asfloat:=msexcel.workbooks[1].worksheets[1].cells[i,6];
tmp_date:=datetostr(msexcel.workbooks[1].worksheets[1].cells[i,2]);
table1.FieldByName('data_yymm_x5').asstring:='0' inttostr(strtoint(copy(tmp_date,1,4))-1911) copy(tmp_date,5,2);
table1.Post;
inc(recno);
end;
l:=i;
label4.caption:=inttostr(i);
label4.Repaint;
end;
msexcel.quit;
k:=k l;
inc(m);
label3.caption:=inttostr(m);
label3.Repaint;
label6.caption:=inttostr(k);
label6.Repaint;
end;
showmessage('Ok');
end; end.
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
joseph110
一般會員 發表:19 回覆:28 積分:9 註冊:2002-09-05 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
joseph110
一般會員 發表:19 回覆:28 積分:9 註冊:2002-09-05 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|
joseph110
一般會員 發表:19 回覆:28 積分:9 註冊:2002-09-05 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
joseph110
一般會員 發表:19 回覆:28 積分:9 註冊:2002-09-05 發送簡訊給我 |
|
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|
u86210779
一般會員 發表:16 回覆:41 積分:16 註冊:2004-06-08 發送簡訊給我 |
Joseph110 兄你好: 試試如此做
請將本行 msexcel:=createoleobject('excel.application');
放在for j:=0 to j-1 do begin 之前,
vFileName := filelistbox1.filename;
msexcel.workbooks.open(vFileName);
.
.
.
.
msexcel.workbooks.close(false,,false); //關閉 workbooks
end; //for j:=0 to j-1 do begin
msexcel.quit; //關閉excel
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |