如何把EXCEL文件导入到DELPHI的开发界面中?(30分)

  • 主题发起人 主题发起人 zhangjensy
  • 开始时间 开始时间
Z

zhangjensy

Unregistered / Unconfirmed
GUEST, unregistred user!
想把一些资料每次都从EXCEL文件中导入,用DELPHI如何开发,有相关的资料?
 
用excel控件来控制excel进行单元格,读写。baidu.google.上面有很多资料。<br>delphibbs也有。慢慢找。
 
说的详细点,是将excel中的数据导入数据库吗?
 
是的.<br>因为有些资料很多,不想人手输入,就想先做成EXCEL表,然后再通过程序功能导入,程序功能要通过DELPHI来写.
 
delphi 的 ole 操作 ...
 
procedure TForm1.SpeedButton1Click(Sender: TObject);<br>var<br>&nbsp; sFileName, sXMID, sWHRID: string;<br>&nbsp; XLSApp: Variant;<br>&nbsp; i, iRow, RowCount: Integer;<br>begin<br>&nbsp; if not OpenDialog1.Execute then Exit;<br>&nbsp; sFileName := OpenDialog1.FileName;<br><br>&nbsp; XLSApp := CreateOleObject('EXCEL.APPLICATION');<br>&nbsp; XLSApp.Application.Workbooks.Open(sFileName);<br><br>&nbsp; RowCount := XLSApp.Application.WorkBooks[1].ActiveSheet.UsedRange.Rows.Count;<br>&nbsp; i := 1;<br>&nbsp; for iRow := 1 to RowCount do<br>&nbsp; begin<br>&nbsp; &nbsp; with qry do<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; Close;<br>&nbsp; &nbsp; &nbsp; SQL.Clear;<br>&nbsp; &nbsp; &nbsp; SQL.Add('insert into ');<br><br>&nbsp; &nbsp; &nbsp; SQL.Add(')');<br>&nbsp; &nbsp; &nbsp; SQL.Add('values');<br>&nbsp; &nbsp; &nbsp; SQL.Add(' &nbsp;');<br>&nbsp; &nbsp; &nbsp; ParamByName(ZBZ').AsString := XLSApp.Application.Workbooks.ActiveSheet.Cells[iRow, 10];<br>&nbsp; &nbsp; &nbsp; ExecSQL;<br>&nbsp; &nbsp; end<br><br>&nbsp; end;<br>end;
 
我找了很多这样的范例,需要的话发给你,QQ:26119097,联系我吧,<br>前天我也遇到这个问题,<br>找了很多人请教,都没弄明白,后来索性下了一大堆这样的范例,慢慢揣摩
 
我以前做过类似的项目,在此把一些注意事项写下来,供参考:<br>1、规范EXCEL文件,因为要读取数据库中去的EXCEL文件可能有很多种,因此根据数据库中的业务需求, 制定一样格式的EXCEL模板,如规定哪列是什么内容,这样才不会取错数据<br>2、确定取EXCEL数据的开始行。因为EXCEL文件中一般都有列表头之类的说明文字,而这些内容是不用读取到数据库中去的,因此可以把某列(例第一列)作为一个标识列,系统通过识别标识列信息,确定取数据的开始有效行。例:第一行,第二行是表头信息,第三行是列标题,第N行也是说明性的信息,第N+1行是要取的正式数据,那么通过第一列的标识性数据即可判断出取数据的开始行。<br>3、逐行取数,经过检查判断,符合要求后再写入表,因为有些EXCEL中的数据不一定符合表中的字段类型,因此经过检查后再确定是否录入。<br>4、判断结束行,一般地可以通过判断是否连续的空行(例,可以判断连续10行是空行)来确定是否取数据结束。这样就有一个规则,文件中上段内容与下段内容不允许有超过N行(例10等待)是空行<br>5、在DELPHI中要合理打开、退出EXCEL,特别是在异常时要能退出打开的EXCEL应用。<br><br>&nbsp;以上是我在做客户订单导入时的一些体会,供参考。
 
后退
顶部