con1: TADOConnection;var
  sFileName, sSql: string;
begin
  sFileName := ExtractFilePath(Application.ExeName) + 'TextBook.xlsx';
  con1.Connected := False;
  con1.ConnectionString := 'Provider=Microsoft.ACE.OLEDB.12.0;Password="";Data Source=' + sFileName + ';Extended Properties=Excel 12.0;Persist Security Info=True';;
  con1.Connected := True;
  sSql := 'create table Sheet1(姓名 TEXT)';
  con1.Execute(sSql);
  con1.Connected := False;
end;
这样生成的'TextBook.xlsx'文件,用Excel打开的时候提示:文件格式或文件扩展名无效。。 

解决方案 »

  1.   

    Microsoft.ACE.OLEDB.12.0 连接应该是Excel 2007
    你用2007生成的Excel,用低于2007的版本是打不开的需要插件或是用2007转换成低版本
      

  2.   

    to 押宝新人
    是用Excel2007打开的。。 把文件后缀改为xls后,再打开,提示:文件的格式与文件扩展名指定的格式不一致。然后点确定继续打开,这样是可以打开文件的。 不知是为什么
      

  3.   

    to 押宝新人
    可是生成的那个文件。 用Excel2007打不开。。 这个是根本问题。。 改文件后缀然后打开只是为了,看下数据是不是写入了
      

  4.   

    需要安装office excel,兼容性不好,建议使用三方控件:
    XLSReadWriteII或者TscExcelExport
      

  5.   

    应该是2007格式,你可以在网找一个2003板,同时支持2007的office.
      

  6.   

    电脑上系统WinXP 使用Excel 2007
    Extended Properties=Excel 8.0;
    上面这样能够正常生成xls文件。 
    谁能够给个ConnectionString  连接后生成xlsx格式的Excel文件。
      

  7.   


    Pvcon.ConnectionString:= 'Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0 Xml;Password="";Data Source=' + PvFileName + ';Persist Security Info=False';;Connection strings for Excel 2007
    http://www.connectionstrings.com/excel-2007终于解决了。 感谢大家的帮助和指导。。
      

  8.   

    good~ 好东西