ADO讀取CSV檔 |
答題得分者是:sryang
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
我想要利用ADO去讀取EXCEL檔將資料顯示在Stringgrid元件上,結果xls格式沒有問題,但是csv格式會顯示"外部資料表布市預期格式"的錯誤,麻煩有各位幫我解答,謝謝
[code cpp] void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString asFile,as; if (OpenDialog1->Execute()) { asFile=OpenDialog1->FileName; as= "Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=D:\BOOK.csv;" "Extended Properties=EXCEL 8.0;HDR=No;IMEX=1;" "Persist Security Info=False;" "Jet OLEDB:System database="";" "Jet OLEDB:Registry Path="";" "Jet OLEDB:Database Password="";" "Jet OLEDB:Engine Type=35;" "Jet OLEDB:Database Locking Mode=0;" "Jet OLEDB:Global Partial Bulk Ops=2;" "Jet OLEDB:Global Bulk Transactions=1;" "Jet OLEDB:New Database Password="";" "Jet OLEDB:Create System Database=False;" "Jet OLEDB:Encrypt Database=False;" "Jet OLEDB:Don't Copy Locale on Compact=False;" "Jet OLEDB:Compact Without Replica Repair=False;" "Jet OLEDB:SFP=False" ; ADOConnection1->ConnectionString=as; ADOConnection1->LoginPrompt=false; ADOQuery1->Connection=ADOConnection1; ADOQuery1->Close(); ADOQuery1->SQL-> Clear() ; ADOQuery1->SQL-> Add("select * from [BOOK$]"); ADOQuery1->Open(); ADOQuery1->First(); StringGrid1->RowCount=ADOQuery1->RecordCount; StringGrid1->ColCount=ADOQuery1->FieldCount; for(int i=0 ; i { for(int j=0 ; j { StringGrid1->Cells[j][i]=(AnsiString)ADOQuery1->Fields->Fields[j]->AsString; } ADOQuery1->Next(); } ADOQuery1->Close(); } }
------
lee |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
謝謝sryang 大指導,修改後已經可以讀取csv檔了.
[code cpp] void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString asFile,as; if (OpenDialog1->Execute()) { asFile=OpenDialog1->FileName; as= "Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=D:\;" "Extended Properties=\"Text;HDR=No;IMEX=1;\";" "Persist Security Info=False"; ; ADOConnection1->ConnectionString=as; ADOConnection1->LoginPrompt=false; ADOConnection1->Connected = true; ADOQuery1->Connection=ADOConnection1; ADOQuery1->Close(); ADOQuery1->SQL-> Clear() ; ADOQuery1->SQL-> Add("SELECT * FROM [BOOK.CSV]"); ADOQuery1->Open(); ADOQuery1->First(); StringGrid1->RowCount=ADOQuery1->RecordCount; StringGrid1->ColCount=ADOQuery1->FieldCount; for(int i=0 ; i { for(int j=0 ; j { StringGrid1->Cells[j][i]=(AnsiString)ADOQuery1->Fields->Fields[j]->AsString; } ADOQuery1->Next(); } ADOQuery1->Close(); } } ===================引 用 sryang 文 章=================== CSV 本質是文字檔,Extended Properties 不能使用 "Excel 8.0" DataSource 設定為 CSV 檔所在目錄 ExtendedProperties 設定為 "把 . 換成 # 例如 Book.csv 就是 "SELECT * FROM BOOK#CSV"
------
lee |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |