起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 369|回复: 2

[请求]如何用ado将电子表格第一行导入?急!

[复制链接]
发表于 2011-3-30 08:52:11 | 显示全部楼层 |阅读模式
如何将电子表格第一行内容导入平台数据库,即电子表格的列名,好像默认都是从有字符开始的第二行导入,如何指定具体要导入的行.我用的是ado.
回复

使用道具 举报

 楼主| 发表于 2011-3-30 12:59:21 | 显示全部楼层

我怎么能把电子表格的列名(合同号\材质等)也导入进来

procedure TMAINFORM.Button1Click(Sender: TObject);
var
  i: integer;
  sql:string;
begin                                                                                       
                if Edit1.Text ='' then
    raise exception.Create('请点击“浏览”按钮,选择需要导入的 Excel 文件!')
  else
    begin
      ADOTable1.Active:=false;
      ADOTable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+ Edit1.Text + ';Extended Properties=''' + 'Excel 8.0;IMEX=1''' + 'ersist Security Info=False;';
      ADOTable1.TableName:='[Sheet1$]';
      try
        ADOTable1.Active:=true;
        If Forms.Application.MessageBox('是否确定将该Excel文件中的单据导入数据库','提示',1) = 1  Then
          begin
            with ADOTable1 do
              begin
                first;
                for i := 1 to recordcount  do
                  begin
                    if ADOTable1.Fields.FieldByName('仓库代码').IsNull=false  then
                      begin
                        DataSetBroker2.DataSet.insert;
                        DataSetBroker2.DataSet.FieldByName('ITEM_MODEL').AsString:=    trim(ADOTable1.Fields.FieldByName('材质').AsString);
                        DataSetBroker2.DataSet.FieldByName('JYLX').AsString:=          trim(ADOTable1.Fields.FieldByName('合同号').AsString);                       
                        DataSetBroker2.DataSet.FieldByName('TRANS_BILL_NO').AsString:= trim(ADOTable1.Fields.FieldByName('车号').AsString);
                        DataSetBroker2.DataSet.FieldByName('CONSIGN_NO').AsString:=    trim(ADOTable1.Fields.FieldByName('收号').AsString);
                        DataSetBroker2.DataSet.FieldByName('TRANS_PRICE').AsString:=   trim(ADOTable1.Fields.FieldByName('运合计').AsString);
                        DataSetBroker2.DataSet.FieldByName('REGULAR_CERT').AsString:=  trim(ADOTable1.Fields.FieldByName('合格号').AsString);
                        DataSetBroker2.DataSet.FieldByName('REGULAR_NUM').AsString:=   trim(ADOTable1.Fields.FieldByName('份数').AsString);
                        DataSetBroker2.DataSet.FieldByName('PIECENUM').AsString:=      trim(ADOTable1.Fields.FieldByName('件数').AsString);
                        DataSetBroker2.DataSet.FieldByName('BZQ').AsString:=           trim(ADOTable1.Fields.FieldByName('保质期').AsString);
                        DataSetBroker2.DataSet.FieldByName('CCRQ').AsString:=          trim(ADOTable1.Fields.FieldByName('出厂日期').AsString);
                        DataSetBroker2.DataSet.FieldByName('PLAN_YM').AsString:=       trim(ADOTable1.Fields.FieldByName('使用部门').AsString);
                        DataSetBroker2.DataSet.ApplyUpdates;
                      end;
                    next;
                  end;
              end;
          end;
      except
        Memo1.Lines.Text:='出错,请核对数据后重新导入单据!!';
      end;
    end;
end;
回复 支持 反对

使用道具 举报

发表于 2011-3-31 09:11:20 | 显示全部楼层

Re: 我怎么能把电子表格的列名(合同号\材质等)也导入进来

使用ExcelToTable控件
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-23 14:18 , Processed in 0.045261 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表