1、利用Delphi调用Excel
Delphi中已经带了Word与PowerPoint的例子,因为Excel的调用与这两个应用服务器的调用略有不同,所以也可以利用Delphi调用Excel。
步骤如下:
(1) 创建一个普通Application.
(2) 在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet.
(3) 连接Excel.
打开Excel.
Try ExcelApplication1.Connect; Except End; ExcelApplication1.Visible[0]:=True; |
ExcelWorkbook1.ConnectTo(ExcelApplication1 Workbooks.Add(EmptyParam,0)); |
Var Temp_Worksheet: _WorkSheet; Begin Try Temp_Worksheet:=ExcelWorkbook1. WorkSheets.Add(EmptyParam, EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet; ExcelWorkSheet1.ConnectTo(Temp_WorkShee); Except ShowMessage(′Failure′); End; |
Try ExcelApplication1.Quit; ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; Except End; End; |
选择某一工作簿中的一个工作表,然后对某一单元格进行赋值及取值。最后选择某一区域作以下操作:
ExcelWorkSheet1.Range[′A1′,′C1′].Select;
打开一个Excel文件.
if OpenDialog1.Execute then Begin Try ExcelWorkBook1.ConnectTo(Excel Application1.Workbooks.Open(OpenDialog1FileName,EmptyParam,EmptyParam,Empty Param, EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam, EmptyParam,EmptyParam,0)); ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet); Except; End; |
OCR可以识别一页A4大小的印刷体中英文混排的纯文本文件只用几秒钟,所以我们可以把扫描的图像进行识别处理、保存。然后通过添加记录或批复制的操作将得到的数据转入数据库的相应的表中。具体实现如下:
Procedure TForm1.buttonclick(sender:tobject); Begin Shellexecute(handle,’open’,’ c:\sh60\sh60.exe’,’,’,sw-shownormal); Button3.enabled:=false; End; Procedure TForm1.formcreat(sender:tobject); Var i:integer: Begin Chdir(‘c:\sh60’); Form1.edit1.clear; Form1.memo1.clear; Assignfile(textid,form1.opendialog1.filename); For i:=1 to form1.adoquery1.sql.count do Begin Form1.adoquery1.close; Form1.adoquery1.clear; Form1.adoquery1.sq1.add(‘select 表名 from Formname’)close; Form1.adoquery1.open; Form1.dbcombox1.datafield:=’表名’; End; |
Delphi数据录入时自动复制原记录,然后做很少的修改,就完成了一条新记录的编辑,最后直接保存。
使用 ADO 方法存取 Access数据库中的表 test,表的第一个字段是“自动编码”字段,在记录复制时要跳过。首先在 Form1 上添加 ADOConnection1、ADODataSet1、DataSource1、DBGrid1 等数据库相关组件,使用连接向导把 ADOConnection1 与 Access 数据库连接起来,把 ADOConnection1 的 LoginPrompt 属性设置为 False,其它组件的对应属性设置如下:
ADODataSet1.Connection :=ADOConnection1; ADODataSet1.CommandText :=select * from test; ADODataSet1.Active :=True; DataSource1.DataSet :=ADODataSet1; DBGrid1.DataSource :=DataSource1; |
在窗体上添加 2 个按钮 Button1 和Button2,设计相应的触发事件。
程序编译运行后,按 Button1 按钮,就会添加一条新的记录,记录的内容为添加前记录指针指向的记录的内容.然后对现有数据做些改动,按 Button2 按钮保存新记录。
4、结论
通过对上面部分代码的修改,可以实现数据的自动录入,极大的提高了数据的录入速度。