起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 315|回复: 15

【结贴】Excel to table的问题**

[复制链接]
发表于 2009-2-4 10:09:06 | 显示全部楼层 |阅读模式
我的代码如下,其中'DataSetBroker1数据集代理已与相关的表关联问一下怎么没有导入数据成功呀
procedure TSCJH.Button4Click(Sender: TObject);
var

  ErrStr,FileNameStr:String;
begin
     opendialog1.Execute;
     FileNameStr :=sysutils.ExtractFileDir(opendialog1.FileName)+''+SysUtils.ExtractFileName(opendialog1.FileName);
    ExcelToTable1.FileName := FileNameStr;
      ExcelToTable1.StartRow :=4;
    ExcelToTable1.EndRow :=160;
     ExcelToTable1.FieldMap.Clear;
     ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCPPBH=Sheet1[1,0]');   
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCCYHJ=Sheet1[5,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCSCXJ=Sheet1[6,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCCD=Sheet1[7,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCSF=Sheet1[8,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCMY=Sheet1[9,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCXC=Sheet1[10,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCCQXJ=Sheet1[11,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCCQFC=Sheet1[12,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCFL=Sheet1[13,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCCQFC=Sheet1[14,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCFL=Sheet1[15,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.FSCQJ=Sheet1[16,0]');
    ExcelToTable1.FieldMap.Add('DataSetBroker1.ccxjyc=Sheet1[17,0]');
      ExcelToTable1.Execute(ErrStr);
       DataSetBroker1.DataSet.ApplyUpdates;
   finally
      if ErrStr<>'' then   dialogs.ShowMessage(ErrStr);
   end;

    DataSetBroker1.DataSet.Open;

end;
回复

使用道具 举报

发表于 2009-2-4 10:17:48 | 显示全部楼层
看看ErrStr是什么值。
回复 支持 反对

使用道具 举报

发表于 2009-2-4 10:18:39 | 显示全部楼层
另外,ExcelToTable1.DataSource是否指定?
回复 支持 反对

使用道具 举报

发表于 2009-2-4 10:25:04 | 显示全部楼层
用一个DataGrid 连接到这个 DataSetBroker1,看看执行   ExcelToTable1.Execute(ErrStr);
后,DataGrid 上是否有数据呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-4 10:36:29 | 显示全部楼层
ExcelToTable1.DataSource我已指定为DataSetBroker1
DataGrid 我也连接的DataSetBroker1数据库里面我查了也没有数据插入
ErrStr没有值,没有报错
回复 支持 反对

使用道具 举报

发表于 2009-2-4 10:41:31 | 显示全部楼层
那DataGrid 上有数据显示吗?如果没有,说明没有导入数据哦,那就跟你上面的赋值代码有关
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-4 10:44:09 | 显示全部楼层
还有个问题就是,我用上面的代码后Datagrid里显示出我原来数据库中的数据而不是EXCEL中的数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-4 10:45:51 | 显示全部楼层
是必须每个字段都要赋值吗
回复 支持 反对

使用道具 举报

发表于 2009-2-4 10:59:18 | 显示全部楼层
回8楼,是必填字段列要给他赋值(非必填的可以不用给他赋值)
你说的导入不成功,需要检查一下你映射关系是否有做对。
  if Business.Forms.ExcelFieldMapFunc.ShowFieldMapEditor(ExcelToTable1) then//加上这句,会弹出一个映射关系的界面,你检查看看
  if ExcelToTable1.Execute(lMsg) then
回复 支持 反对

使用道具 举报

发表于 2009-2-4 11:01:57 | 显示全部楼层
1、如果DataGrid 中没有显示出来你导入的数据,那么说明上面赋值的代码有问题,你设置断点跟踪一下。
2、是否每个字段都要赋值,
不是的,主键需要赋值,其他的就要看你要导入哪些字段了。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-28 05:39 , Processed in 0.040174 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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