怎么把excel里面的内容导入到db里面有delphi高手吗,求指教,真心求指教,谢谢。最好有源代码程序

来自:    更新日期:早些时候
在delphi中如何实现用代码将excel导入到sql数据库中~

1.打开SQL Server Management Studio,按图中的路径进入导入数据界面。

2.导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。

3.数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。

4.选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。

5.再次确认文件路径没有问题,点击下一步。

6.默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。

7.选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据不想导入,则可以编写查询指定的数据进行导入。点击下一步。

8.选择需要导入的SHEET表,比如在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。

9.点击进入下一步。

10.在这里完整显示了导入的信息,执行内容,再次确认无误后,点击完成,开始执行。

11.可以看到任务执行的过程和进度。

12.执行成功:可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT * FROM price$就可以查看已导入的数据内容。

数据库中表A,字段为A1,A2,A3,a4,a5
电子表格 d\:shuju.xls
包含项目b1,b2,b3,b4,b5
insert into dbo.A
(a1,a2,a3,a4,a5)
SELECT b1,b2,b3,b4,b5
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source=d:\shuju.xls;Extended Properties=EXCEL 8.0' )...[Sheet1$] Rowset_1
这样就可以导入,当然也可以使用控件TXLSFile,如需要向我可向我索要
[email protected]

我以前写过的,首先你要把
Excel2000, OleServer,ComObj, ExcelXP添加到上面的uses列表里面,添加对应的EXECEL控件。
ExcelApplication1: TExcelApplication;
ExcelWorkbook1: TExcelWorkbook;
ExcelWorksheet1: TExcelWorksheet;
然后在你 的事件里写下面代码。原来写的数据太多,删除了一些列的导入内容,你自己再调试一下就行了。

var
nu,barcode1,da,na,ena,com,spec:string;
ExcelApp,WorkBook: Olevariant;
ExcelRowCount,i :Integer;
begin
dbgrid2.Enabled:=false;
try
if SaveDialog1.Execute then
begin

ExcelApp := CreateOleObject('Excel.Application');
WorkBook := ExcelApp.WorkBooks.Open(savedialog1.FileName);
ExcelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;

for i := 2 to excelrowcount + 1 do
begin
nu := excelapp.Cells[i,1].Value;
if trim(excelapp.cells[i,2].value)='' then
na:=' '
else begin
na:=excelapp.Cells[i,2].Value;
end;
if trim(excelapp.cells[i,3].value)='' then
ena:=' '
else
ena:= excelapp.Cells[i,3].Value;
if trim(excelapp.cells[i,4].value)='' then
com:=' '
else
com:= trim(excelapp.Cells[i,4].Value);
if trim(excelapp.cells[i,5].value)='' then
spec:=' '
else
spec:= excelapp.Cells[i,5].Value;

if ((excelapp.Cells[i,1].Value = '') and (ExcelApp.Cells[i,3].Value = '')) then //指定excel档的第 i 行 ,第 1,2(看情况而定)行如果为空就退出,这样的设定,最好是你的档案力这两行//对应数据库中不能为空的数据
exit
else
with data.product do
begin
close;
sql.clear;
sql.Add('select * from twoven where number='''+nu+'''');
open;
if recordcount>=1 then begin
if MessageBox(handle,'此记录已存在,是否覆盖原记录?','提示',MB_IconQuestion+MB_YesNo)=IDYES then
BEGIN
Delete;
sql.Clear;
sql.add('insert into twoven(number,name,ename,wf_comp,wf_spec)');
sql.add(' values(:number,:name,:ename,:wf_comp,:wf_spec)');
Parameters.ParamByName('number').Value :=trim(nu);//excel档的第一列插入到aa表的 a 栏位;
Parameters.ParamByName('name').Value := trim(na);//excel档的第二列插入到aa表的 b 栏位;
Parameters.ParamByName('ename').Value := trim(ena);//excel档的第一列插入到aa表的 a 栏位;
Parameters.ParamByName('wf_comp').Value := trim(com);//excel档的第一列插入到aa表的 a 栏位;
Parameters.ParamByName('wf_spec').Value := trim(spec);//excel档的第二列插入到aa表的 b 栏位;
execsql;
END;
end;=

end;
showmessage('数据导入成功!');
WorkBook.Close;
ExcelApp.Quit;
ExcelApp := Unassigned;
WorkBook := Unassigned;

ExcelWorkBook1.Close(false);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
Screen.Cursor:=crDefault;
end;

var
sFileName, sTableName: string;
sl: TStringList;
i: integer;
begin
if not dlgOpen1.Execute then Exit;

if not con1.Connected then con1.Connected:=True; //判断是否连接

try
sFileName := dlgOpen1.FileName;
con2.Connected := False; //注意这里 连接 EXCEL 的参数 //关键是这里
con2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';
con2.Connected := True;
//
sl := TStringList.Create;
con2.GetTableNames(sl); // 记住 Excel 文件的 底部 必须是 sheet1 否则不能导入
sTableName := sl[0];
if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']';

qry2.Close;
qry2.SQL.Clear;
qry2.SQL.Text := 'SELECT * FROM ' + sTableName;
qry2.Open;
sl.Free;

qry1.Close;
qry1.Sql.Text := 'SELECT top 1 * FROM wo where 1=0'; //打开 空记录表....这里可以用 insert,不用append
qry1.Open; //根据自己习惯 做吧...

if qry2.RecordCount > 0 then
begin

qry2.First;
for i := 1 to qry2.RecordCount do
if qry2.FieldValues['序号']<>null then //
begin
qry1.Append;
qry1.FieldValues['A']:=qry2.FieldValues['序号'];
qry1.FieldValues['B']:=qry2.FieldValues['备案编号'];
qry1.FieldValues['C']:=qry2.FieldValues['产权单位'];
qry1.FieldValues['D']:=qry2.FieldValues['单位地址'];
qry1.FieldValues['E']:=qry2.FieldValues['法人代表'];
qry1.FieldValues['F']:=qry2.FieldValues['电话'];
qry1.FieldValues['G']:=qry2.FieldValues['名称'];
qry1.FieldValues['H']:=qry2.FieldValues['型号'];
qry1.FieldValues['I']:=qry2.FieldValues['制造单位'];
qry1.FieldValues['J']:=qry2.FieldValues['出厂日期'];
qry1.FieldValues['K']:=qry2.FieldValues['产品编号'];
qry1.FieldValues['L']:=qry2.FieldValues['企业自编号'];
qry1.FieldValues['M']:=qry2.FieldValues['备案时间'];
qry1.Post;

qry2.Next;
end;

end;

ShowMessage('共'+IntToStr(qry2.recordcount)+'条记录'+'导入成功'+inttostr(qry1.recordcount)+'条记录');

MessageBox(Handle,'导入完成!','完成!',MB_OK+MB_ICONINFORMATION);
except
MessageBox(Handle,'失败!','信息!',MB_OK+MB_ICONINFORMATION);
begin
if not con1.Connected then con1.Connected:=True; //判断是否连接

qry1.Close;
qry1.Sql.Text := 'SELECT * FROM wo';
qry1.Open;
end;
end;


怎么把excel里面的内容导入到db里面有delphi高手吗,求指教,真心求指教,谢谢。最好有源代码程序视频

相关评论:
  • 13360922304excel怎么导出指定部分内容excel怎么导出其中一部分
    寇哪鹏要将Excel中的指定部分内容导出,可以通过以下步骤完成。首先,在Excel中选定要导出的区域,可以使用鼠标选定或者按住Ctrl键在多个区域之间切换选定。然后,点击“文件”菜单,选择“另存为”选项,选择文件格式为“CSV(逗号分隔)(*.csv)”或其他想要的文件格式,点击“保存”按钮即可。导出的文件中只包含...

  • 13360922304excel表格中查找的内容怎么导出
    寇哪鹏可以按照以下步骤:1. 在Excel中打开需要导出的工作表。2. 使用“查找替换”或“筛选”功能找到需要导出的内容,并选中所有的查找结果。3. 将选中的内容复制到剪贴板中(快捷键为“Ctrl+C”)。4. 在Excel中创建一个新的工作表,然后将剪贴板中的内容粘贴到新工作表中(快捷键为“Ctrl+V”)。5....

  • 13360922304怎样在Excel中将查找的内容导出来?
    寇哪鹏1. 首先,你需要打开包含查找结果的Excel文件。2. 在Excel的菜单栏上,找到并点击“查找和选择”(在“开始”选项卡下)。这个功能通常显示为“查找”或“查找和替换”。3. 点击“查找和选择”后,会出现一个对话框,让你输入需要查找的内容。

  • 13360922304Excel把一个表的内容复制到另一个表中怎么弄excel把一个表的内容复制...
    寇哪鹏1. 按住Ctrl+A 鼠标左键随便点击一个单元格,按住Ctrl+A。2. 按住Ctrl+C 按住Ctrl+C键进行复制。3. 按住Ctrl+V 选择另一张表,鼠标左键点击A1单元格或者三角区域,按住Ctrl+V即可。

  • 13360922304excel中如何把一列内容复制到另一列中?
    寇哪鹏很多人在处理Excel文档时经常需要在第二张表格中利用到第一张表格的数据,用复制粘贴的方法有些繁琐。接下来小编就给大家介绍一下怎么将Excel表格中的数据自动填到另一个表格中。具体如下:1. 首先第一步打开电脑中的一个Excel文档,也就是小编下图所示的工作簿1。2. 第二步点击最上方【+】号选项,...

  • 13360922304怎么把Excel表格中的内容提取出来?
    寇哪鹏提取Excel表格中同一个数据的多个内容可以通过以下几种方法实现:1. 使用Ctrl+E快捷键:如果需要提取的数据在相邻的单元格中,可以选择一个起始单元格,然后按Ctrl+E自动填充到其他单元格。2. 使用分列技巧:如果需要提取的数据在同一个单元格中被分隔开,可以使用分列功能将数据拆分成多个列。选择需要...

  • 13360922304excel表格里面的内容怎么批量导入word把excel批量导入word
    寇哪鹏批量将Excel表格内容导入Word中的步骤如下:1. 打开Excel文件,选择需要导入到Word中的数据,然后复制这些数据。2. 打开需要导入数据的Word文档,将光标放置在想要插入数据的位置。3. 点击菜单栏中的“粘贴”按钮,将复制的Excel数据粘贴到Word文档中。4. 如果需要,可以通过拖动鼠标来调整表格的大小和位...

  • 13360922304怎么把excel表格里的数据复制到其他表格?
    寇哪鹏如何将一张EXCEL表格中某行固定列的数据自动复制到另一个excel表格的解决方法如下:1、公式法,比如要把sheet1中B2单元格内容复制到sheet2的A1单元格,A1单元格的公式为:=sheet1!B2,如果是连续的可以下拉公式,你说的情况不是连续单元格,就只能这样了 2、编程法,可以根据你的需要,通过录制或是...

  • 13360922304怎么把一个excel表格的内容复制到另一个上
    寇哪鹏1. 打开两个相同的Excel表格,分别为“表格1”和“表格2”。2. 在“表格1”中筛选需要复制的数据,如选中A列中含有“北京”的行。3. 将选中的数据复制,可以使用快捷键Ctrl+C或右键点击选中区域,选择“复制”。4. 切换到“表格2”,选中需要粘贴数据的单元格,如选中A1单元格。5. 将复制的数据...

  • 13360922304怎么把excel中的内容粘贴到word中?
    寇哪鹏在“替换为”框中输入“”(不含引号)。最后,点击“全部替换”按钮即可完成格式删除。5. 最后,我们可以在Word文档中预览一下提取的内容,以确保没有其他问题。如果需要的话,可以进行一些简单的排版和编辑。以上就是将Excel单元格提取纯文字到Word的方法。这种方法可以...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网