起步软件技术论坛-X3

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

【结贴】如何把docsheet导出到excel**

[复制链接]
发表于 2008-6-16 16:20:45 | 显示全部楼层 |阅读模式
如题: 另 每导一次,新增一个Excel的sheet,并rename
请务必告知方法. 相关帖子拜读过.没得出结论
回复

使用道具 举报

 楼主| 发表于 2008-6-16 16:25:45 | 显示全部楼层
lfilename:='c:\格式一.xls';

  Excel:= ComObj.CreateOleObject('Excel.Application');
  app := System.DispatchHelper.Create(Excel);
  app.PropertyPut('Visible', [True]);
  workbook := app.PropertyGet('Workbooks',[]);
  docs := System.DispatchHelper.Create(workbook);

往下应该新建sheet  但不知如何实现!
回复 支持 反对

使用道具 举报

发表于 2008-6-16 16:37:25 | 显示全部楼层
我用Office Excel录了一段宏(创建sheet,并修改sheet名称),楼主参考一下:
Sub Macro2()
'
' Macro2 Macro
' 宏由 贾海明(JHM)-1 录制,时间:
'

'
    Sheets("Sheet1").Select
    Sheets.Add
    Sheets("Sheet2").Select
    Sheets("Sheet2").Name = "newSheet"
End Sub
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 16:53:49 | 显示全部楼层
sheet:= docs.PropertyGet('Sheets',[]);
  sheets := System.DispatchHelper.Create(sheet);
这里过不去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 17:16:17 | 显示全部楼层
lfilename:='c:\格式一.xls';

  Excel:= ComObj.CreateOleObject('Excel.Application');
  app := System.DispatchHelper.Create(Excel);
  app.PropertyPut('Visible', [True]);
  workbook := app.PropertyGet('Workbooks',[]);
  docs := System.DispatchHelper.Create(workbook);
  docs.InvokeMethod('open', ['c:\格式一.xls',false]);
  sheet:= docs.PropertyGet('Worksheets',[]);
  sheets := System.DispatchHelper.Create(sheet);
  sheets.InvokeMethod('add',[111]);
过不去.不知哪里有问题
回复 支持 反对

使用道具 举报

发表于 2008-6-16 17:30:46 | 显示全部楼层
我这里已经打开了文件了,就是copy有问题,你也试试看。
var
  lFileName, lSource: String;
  oExcel: object;
  app, workbooks, sourceworkbook, sourceworksheets, sourceworksheet,
  workbook, worksheets, worksheet: DispatchHelper;
begin
  lfilename:='c:\demo.xls';
  lSource := 'c:\source.xls';

  oExcel:= ComObj.CreateOleObject('Excel.Application');
  app := DispatchHelper.Create(oExcel);
  app.PropertyPut('Visible', [True]);

  workbooks := DispatchHelper.Create(app.PropertyGet('Workbooks',[]));
  sourceworkbook := DispatchHelper.Create(workbooks.InvokeMethod('Open',[lSource]));//打开文件

  sourceworksheets := System.DispatchHelper.Create(sourceworkbook.PropertyGet('Sheets',[]));
  sourceworksheet := System.DispatchHelper.Create(sourceworksheets.PropertyGet('Item',[1]));
  //worksheet.PropertyPut('Name', ['wxw']);

  workbook := DispatchHelper.Create(workbooks.InvokeMethod('Open',[lFileName]));//打开文件
  worksheets := System.DispatchHelper.Create(workbook.PropertyGet('Sheets',[]));
  worksheet := System.DispatchHelper.Create(worksheets.PropertyGet('Item',[1]));
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 17:45:25 | 显示全部楼层
打开文件没问题.我早就成功了.现在是怎么新建的问题
回复 支持 反对

使用道具 举报

发表于 2008-6-16 18:10:36 | 显示全部楼层
我用的是copy方法,但是有问题:
sourceworksheet.InvokeMethod('Copy', [oWorksheet]);
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 18:12:55 | 显示全部楼层
我现在add一个sheet也没问题了.就是copy了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 18:19:16 | 显示全部楼层
辛苦老贾了!请尽快帮我解决.一天一个excel文件的存,用户快跟我急了.
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 20:00 , Processed in 0.046114 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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