在Delphi中阅读Excel电子表格

时间:2015-03-18 10:19:16

标签: delphi import-from-excel

我有许多应用程序可以读取Excel电子表格以转换为SQL

所有应用程序都基于相同的技术,使用以下过程。直到最近在一个客户站点上安装它才能完美运行。

程序

procedure TFormSpreadsheet.ConnectToExcel;
var strConn :  widestring;
begin
  strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +
           'Data Source=' + edtSpreadsheet.Text + ';' +
           'Extended Properties=Excel 8.0;';
  showmessage(strConn);
  ConnectionIn.Connected:=False;
  ConnectionIn.ConnectionString:=strConn;
  try
    ConnectionIn.Open;
  except
    ShowMessage('Unable to connect to Excel, make sure the workbook ' + edtSpreadsheet.Text + ' exists!');
    raise;
  end;
end;(*ConnectToExcel*)

procedure TFormSpreadsheet.FetchData;

begin
  StatusBar1.SimpleText:='';

  ConnectToExcel;

  QrySpreadsheetIn.Close;

  QrySpreadsheetIn.SQL.Text:=MemoQry.Text;
  showmessage('qry is ' + memoqry.Text);
  try
    QrySpreadsheetIn.Open;
    clientdataset1.Open;
  except
    ShowMessage('Unable to read data from Excel, make sure the query ' + edtSpreadsheet.Text +
                 ' is meaningful!');
    raise;
  end;
end;

在这一个网站上,我收到消息“无法从Excel读取数据,请确保查询有意义”

查询显示'Select * from [sheetname $]

适用于所有其他网站)

在客户站点上运行的Showmessages显示连接成功,但查询的打开(适用于我尝试的每个其他安装)都失败。

其他一些信息 -

该过程是在32位系统上的Delphi 7中开发的。 失败的安装是在64位系统上,但我已成功安装在其他64位系统上。

我已经读过,有些DLL可能会丢失或处于非活动状态,但网站IT公司已确保它们应该全部有序。

有没有人有任何想法?也许一些代码可以用来证明什么是错的。

预先提出任何帮助/建议

0 个答案:

没有答案