寻找方式/组件来读取/编辑真正的MS excel 2007文件

时间:2010-11-05 06:03:40

标签: delphi excel-2007

我正在寻找指南(OLE / ADO)或准备好的本机组件来读取/编辑/编写MS excel 2007文件。

到目前为止,我试过Native excel ver2和txlsfile ver 4,XLSReadWriteII ver 4但看起来本机excel无法打开excel 2007。

txlsfile或XLSReadWriteII(对不起,我删除了它们,不记得是哪一个)可以打开/读取但是在编辑和保存时只产生4kb损坏的xlsx文件。

2 个答案:

答案 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

他们总是只为我的需要而努力。