1.先拉一個 OpenDialog1 , ADOConnection1 , ADOQuery1
2.拉一個 Button1 把事件寫在按鈕按下去的時候
3 g) C' U; x3 d2 R F4 i% W複製內容到剪貼板
代碼:
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
if OpenDialog1.FileName <> '' then
begin
ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Text;HDR=YES;FMT=Delimited;CharacterSet=ANSI"ersist Security Info=False;'
+'Data Source='+ExtractFilePath(OpenDialog1.FileName) ;
ADOQuery1.SQL.Text := 'Select * from '+ ExtractFileName (OpenDialog1.FileName) ;
ADOQuery1.Open ;
end;
end;' [2 b( T% ` M) w j% Q- B. g8 E
這時候可以把讀出來的資料丟到 DBgrid 上顯示
但是會發現某些欄位是空白的 o_Oa
上網查一下 , 大概知道啥情況了
6 }7 ^7 O0 V# j4 `+ t2 i# F# B( Zcsv檔個標準* m, Q. ~% X2 N
應該是如果該欄為文字型態,用""8 ~$ Y+ T/ p# i3 O7 ?; m
如果為數字型態,就直接顯示
( E9 F( h0 Q4 u# c8 Y) V3 X8 t5 e並且第一列為Title , 所以底下的 a2 會被當作數值 , t12 就會被變成空白顯示 lol
( c1 c( t: G6 \; Q; o( M3 [9 S
複製內容到剪貼板
代碼:
"a1","a2","a3","a4"
"abc",123,"4,567","def"
"11",t12,"13","14"
"abc",123,"3,456","123"
& s" Z" c: |# J8 r* o看是要手動改掉 csv 還是另外寫程式加上 "" 吧