起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 350|回复: 4

【结贴】导入问题**

[复制链接]
发表于 2008-3-3 14:10:16 | 显示全部楼层 |阅读模式
一个窗体,包含DateGrid,做了2各button,目的是把表格的内容导出并且导入。

代码如下:

procedure TFormDataImport.ToolButton7Click(Sender: TObject);
Var
  lMsg: String;
begin
  lMsg := '';
  OpenDialog1.Filter := 'Excel(*.xls)|*.xls';
  if OpenDialog1.Execute then
  begin
    DataSetTargetDef.Open;
    DataSetTargetDef.EmptyDataSet;
    ExcelToTable.FileName := OpenDialog1.FileName;
    ExcelToTable.StartRow := 1;
    ExcelToTable.EndRow := 5000;
    ExcelToTable.Execute(lMsg);
  end;
end;

procedure TFormDataImport.ToolButton9Click(Sender: TObject);
begin
  SaveDialog1.Filter := 'Excel(*.xls)|*.xls';
  SaveDialog1.FileName := 'sheet1.xls';
  if SaveDialog1.Execute then
    DataGrid3.SaveToXLS(SaveDialog1.FileName+'.xls',true);

end;

有这么几个问题:
1、导出后需要手动删除excel里面的列头才能导入。
2、有没有办法代码控制导出的excel版本是office03以下
3、导入的时候第一次没有问题,可是连续导入几次以后内存占满,机器死机。感觉应该是代码的问题,怎么修改代码能避免这个问题。

第三个问题最为重要。谢谢
回复

使用道具 举报

发表于 2008-3-3 14:27:24 | 显示全部楼层
第三个问题,可以尝试动态创建ExcelToTable组件,每次导入完后,释放这个组件。
1、我用的版本中,没有碰到这个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-3 15:09:47 | 显示全部楼层
lixy  ,谢谢。。。我能看看你怎么写的吗?
回复 支持 反对

使用道具 举报

发表于 2008-3-3 15:34:08 | 显示全部楼层
procedure TMainForm.Button1Click(Sender: TObject);
var
   lExcelToTable:TExcelToTable;
   lmsg:string;
begin
if OpenDialog1.Execute then
begin
    lExcelToTable:=TExcelToTable.Create(self);
    try
      lExcelToTable.FileName := OpenDialog1.FileName;
      lExcelToTable.DataSource:=DataSetBroker1;
      if ExcelFieldMapFunc.ShowFieldMapEditor(lExcelToTable) then
      begin
       if not lExcelToTable.Execute(lmsg) then
          begin
            jsDialogs.ShowError(lmsg, '导入excel失败!');
          end ;
       end;
     finally
       lExcelToTable.free;
     end;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-3 15:42:00 | 显示全部楼层
谢谢,非常感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 21:28 , Processed in 0.043274 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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