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

如何讀取EXCEL檔中的分數

缺席
ycl2005
一般會員


發表:15
回覆:14
積分:5
註冊:2005-10-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-09-21 17:00:20 IP:211.75.xxx.xxx 訂閱
USER在EXCEL中輸入小數的部份, 利用儲存格格式設定顯示成分數, 例如:1.5 => 1 1/2 ,  1.25=> 1 1/4
讀取方式類似max5020寫的範例如下:

[code delphi]
procedure TfmStk029.XLS2Price1(const sFileName: String);
var j: Integer;
ExcelAP, ExcelWB: Variant;
s: String;
begin
try
ExcelAP:= CreateOleObject('Excel.Application');
ExcelWB:= ExcelAP.WorkBooks.OPEN(sFileName);
ExcelAP.Worksheets[1].Select;
// Append Data from Excel
DataSet_Detail.DisableControls;
j:= 1;
repeat
j:= j 1;
DataSet_Detail.Append;
DataSet_Detail.FieldByName('prc1s_partNo').asString:= ExcelAP.Cells[j, 1].Value;
DataSet_Detail.FieldByName('prc1s_new').asFloat:= ExcelAP.Cells[j, 2].Value;
DataSet_Detail.Post;
s:= ExcelAP.Cells[j 1, 1].Value;
until ( s = '');
finally
ExcelAP.Quit;
end;
DataSet_Detail.First;
DataSet_Detail.EnableControls;
end;
[/code]

請問如何能將資料讀進來後是分數而不是小數?

編輯記錄
ycl2005 重新編輯於 2009-09-21 17:01:49, 註解 無‧
tuga
高階會員


發表:16
回覆:109
積分:120
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-09-22 08:40:25 IP:122.116.xxx.xxx 訂閱
如果改用 AsString 讀進來呢 ?  我亂猜的!!!
ycl2005
一般會員


發表:15
回覆:14
積分:5
註冊:2005-10-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-09-23 09:27:05 IP:211.75.xxx.xxx 訂閱
我想到解決方法了, 既然DELPHI無法讀取EXCEL中的分數, 只能讀成小數,
那就在DELPHI裡寫一支function把小數轉成分數不就得了.
tuga
高階會員


發表:16
回覆:109
積分:120
註冊:2002-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-09-23 11:25:04 IP:122.116.xxx.xxx 訂閱
如果是 0.33, 你要轉成 1/3 ?   

這樣中間有誤差的, 要考慮誤差會不會影響後續的計算


===================引 用 ycl2005 文 章===================
我想到解決方法了, 既然DELPHI無法讀取EXCEL中的分數, 只能讀成小數,
那就在DELPHI裡寫一支function把小數轉成分數不就得了.
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-09-23 13:46:38 IP:61.63.xxx.xxx 未訂閱
你把Cell的 Formula 改成分數才取Value吧
不過Delphi這邊要拿String來接才好
系統時間:2024-05-16 19:03:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!