我正在寻找指南(OLE / ADO)或准备好的本机组件来读取/编辑/编写MS excel 2007文件。
到目前为止,我试过Native excel ver2和txlsfile ver 4,XLSReadWriteII ver 4但看起来本机excel无法打开excel 2007。
txlsfile或XLSReadWriteII(对不起,我删除了它们,不记得是哪一个)可以打开/读取但是在编辑和保存时只产生4kb损坏的xlsx文件。
答案 0 :(得分:4)
使用ADO连接Excel 2007文件,您可以使用像这样的连接字符串
提供商= Microsoft.ACE.OLEDB.12.0;数据 源= C:\ MyFolder文件\ myExcel2007file.xlsx;扩展 Properties =“Excel 12.0 Xml; HDR = YES”;
此连接字符串使用Microsoft.ACE.OLEDB.12.0提供程序,您可以从(2007 Office System Driver: Data Connectivity Components)
下载。
尝试此代码,其中显示了如何使用ADO连接到excel 2007文件。
const
ExcelStr='Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Extended Properties="Excel 12.0 Xml;HDR=YES";';
procedure TForm1.ButtonOpen(Sender: TObject);
begin
try
ADOConnection1.ConnectionString:=Format(ExcelStr,['C:\Documents and Settings\Administrator\My Documents\My Dropbox\excelfile2007.xlsx']); // set the name of your excel file
ADOConnection1.Connected:=True; //connect to the excel file
ADODataSet1.CommandText:='Select * from [Sheet1$]';//create your sql query
ADODataSet1.Open; //open the excel file
while not ADODataSet1.eof do
begin
//do your job here.
//ADODataSet1.FieldByName('Field1').AsString
ADODataSet1.Next;
end;
except
on E:Exception do
ShowMessage(Format('%s Error %s',[E.Classname, E.Message]));
end;
end;
答案 1 :(得分:0)
我过去使用的几个组件是EMS Advanced Data Import/Export。
他们总是只为我的需要而努力。