因为某种原因,公司里所有的电脑都卸载了Microsoft Office,导致自己编写的A程序读取excel文件失败。
目前公司使用wps2005。虽然可以打开客户的excel文件,但是使用A程序将excel文件的数据读入A程序就有问题了:求解决方法!
A程序中大致是使用ExcelApplication1、ExcelWorkbook1和ExcelWorksheet1来实现excel文件的数据读入的。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    ziduan1,ziduan2:string;
    begin
    ADOexcel.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+edit1.text+';Extended Properties=Excel 8.0';
    ADOexcel.sql.text:='select * from [Sheet1$]';
    ADOexcel.Open;
    for i:=0 to ADOexcel.recordcount-1 do
    begin
    ziduan1:=ADOexcel.fieldbyname('字段1').AsString;
    ziduan2:=ADOexcel.fieldbyname('字段2').AsString;
    adosql.Close;
    adosql.sql.clear;
    adosql.sql.add('select * From 要导入的表');
    adosql.Open;
    adosql.Append;
    adosql.fieldbyname('字段1').asstring:=ziduan1;
    adosql.fieldbyname('字段2').asstring:=ziduan2;
    adosql.Post;
    ADOexcel.next;
    end;
    showmessage('导入成功!');
    end;
    确保Excel中没有合并的单元格
      

  2.   

    没有用到你所说的组件,两个ADO一个连EXCEL 一个连SQL,试试
      

  3.   

    用DEV的spreadSheet,大部分EXCEL数据都能读出------------------------------啥叫签名?
      

  4.   

    ExcelApplication1、ExcelWorkbook1和ExcelWorksheet1是通过ole来读excel的数据的,它必须要装excel,不用安装excel而要读它的内容,建议用XLSReadWriteII(在DELPHI盒子上就有)
      

  5.   

    因为网络故障现在才开始研究。有结果后再给各位分数。
    fcl912(秋野悲树):ADOexcel是什么?
      

  6.   

    使用XLSReadWriteII时提示:system error.code:1772.RPC服务器部可用。
      

  7.   

    如果要读取的EXCEL文件格式不复杂,也可以不使用OLE方式来读取,而是通过Jet把EXCEL表当作一个数据库表来读取,具体类似 fcl912(秋野悲树) 那样写法(ADOExcel应该是一个TADOQuery对象)
    或者用第三方控件,当然通过OLE方式访问EXCEL文件的控件也是不行的了
      

  8.   

    fcl912(秋野悲树) 的方法可行,但是如果文档中的数据类型复杂的话不好处理.还是得用ole.
    检查注册表"excel.application"相关项,发现必须用到"excel.exe",现在我想:是否可以copy部分文件来实现它呢,如果可以应该是那些?正在尝试中,希望有这方面经验的大哥帮忙!
      

  9.   

    问:WPS Office 2005 专业版的WPS表格是怎样获取MS的excel工作表的数据的?
      

  10.   

    fcl912(秋野悲树):使用你的方法存在如下问题:
    如果同一列中有数字或者字符存在,那么只能显示其中的部分数据(要么是数值要么是字符),请问可以解决吗?
      

  11.   

    http://ask.xoyo.com/wps/guide/list/30/2.shtml
      

  12.   

    谢谢liwenyang1118(李文央)!揭贴.