DELPHI控制EXCEL,找了半天,找不到!复制已存在工作表的代码(200分)

  • 主题发起人 主题发起人 wqhatnet
  • 开始时间 开始时间
W

wqhatnet

Unregistered / Unconfirmed
GUEST, unregistred user!
我在网上找了半天找不到我想要的,我的需求是:
我有个名字为ABC.xls的EXCEL文档,里面有一个叫“0”的工作表,这个表我已经设了格式
我想在用的时候,把这个名字“0”的工作表,复制一个新的工作表,自动居后,新名为1,
在把这个1设置为活动工作表,把DBGRID的内容写进去。
在网上我找到一些打开已存在的工作表的代码,新增加新的工作表的方法,就是没有复制已存在工作表的方法,谁肯赐教?
 
我觉得,应该可以先增加一个工作表,名改为1,然后再到0的工作表中,全选,复制,再到1中,再粘贴。
 
转EXCLE的做过,这个格式的还没有做过.试试,
 
ExcelApp.ActiveSheet.Cells.Copy;
ExcelAppRPT :=createoleobject( 'Excel.Application' );
ExcelAppRPT.WorkBooks.Open('test.xls');
ExcelAppRPT.Sheets[sheet1'].Activate;
ExcelAppRPT.ActiveSheet.Paste;
 
很早以前就有过帖子,离线数据库里可以查到。好就不用都生疏了
 
http://www.star-reg.com/soft/softview.php?id=12543
试下这个控件能满足你的要求吗?
 
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/ABC.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...0这就是查询得到你要的值,然后你要增加什么再导出什么,那就是你看着办了,哈哈
 
不知道能不能提供一点帮助,乱写,希望修正!谢谢
ExcelApp.Worksheets.Add这个不会用,请指点

var ExcelApp : TExcelApplication;
Excelbook : TExcelWorkbook;
Excelsheet : TExcelWorksheet;
Temp_Worksheet: _WorkSheet;
Datas :variant;
i : integer;
begin
i:=1;
ExcelApp := TExcelApplication.Create(nil);
Excelbook := TExcelWorkbook.Create(nil);
Excelsheet := TExcelWorksheet.Create(nil);

try
ExcelApp.Connect;
except
Messagedlg('Not Install Excel ',mtInformation,[mbOK],0);
abort;
end;
try
Excelbook.ConnectTo(
ExcelApp.Workbooks.Open( Edit1.Text,EmptyParam,
EmptyParam,EmptyParam,
EmptyParam,EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, 0) );
except
end;

Temp_Worksheet := Excelbook.Worksheets as _WorkSheet ;
Excelsheet.ConnectTo(Temp_Worksheet);
Excelsheet.Select;
Datas:= varArrayCreate([1,1000,1,40],varVariant);
Datas:= Excelsheet.Range[Excelsheet.Cells.Item[1,1],Excelsheet.Cells.Item[1000,40]].Value;
ExcelApp.Worksheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

Temp_Worksheet := Excelbook.Worksheets as _WorkSheet ;
Excelsheet.ConnectTo(Temp_Worksheet);
Excelsheet.Select;
Excelsheet.Range[Excelsheet.Cells.Item[1,1],Excelsheet.Cells.Item[1000,40]].Value :=Datas;


ExcelApp.Disconnect;
ExcelApp.Free;
 
后退
顶部