Delphi的Excel导出问题

我就是木暮 2014-01-26 04:23:53
XE2,想看看Excel2000.pas 的内容,找不到在哪.
uses后面加上Excel2000.pas没报错就是打不开。右键点open file in cursor也打不开。
还有就是 ComObj不能直接引用
如图:
必须这样:

另,会这样:
和这样:


请救急.
...全文
322 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2014-02-27
  • 打赏
  • 举报
回复
版本差异,自行修改代码
oushengfen 2014-02-10
  • 打赏
  • 举报
回复
这个只是版本的差异引起的,稍微改一下即可。目前还没有用XE
Andy-88 2014-02-07
  • 打赏
  • 举报
回复
这个后续版本接的少这个应该系统环境问题,加上就加上呗,另EXCEL 操作还是看一下最新的VBA 这个操作和不同版本的EXCEL 有关
Delphi小叮当 2014-02-07
  • 打赏
  • 举报
回复
procedure TForm1.N2Click(Sender: TObject);
var   eclApp,WorkBook:Variant; {声明为OLE Automation对象}
  xlsFileName:string;
begin
self.Caption:='新建工作表';
  xlsFileName:=slj+'ex.xls';
  try
  eclApp:=CreateOleObject('Excel.Application');
WorkBook:=CreateOleObject('Excel.Sheet');
  Except
Application.MessageBox('你的机器没有安装Microsoft Excel','使用Microsoft Excel',MB_OK+MB_ICONWarning);
Exit;
  End;
 Try
WorkBook:=eclApp.workbooks.Add;
             ///第一行 第一列
EclApp.Cells(2,1):='序号';
EclApp.Cells(2,2):='家长姓名';
EclApp.Cells(2,3):='家长年龄';
EclApp.Cells(2,4):='手机' ;
EclApp.Cells(2,5):='邮箱';
EclApp.Cells(2,6):='孩子姓名';
EclApp.Cells(2,7):='孩子性别';
EclApp.Cells(2,8):='孩子学龄';
EclApp.Cells(2,9):='区域';
EclApp.Cells(2,10):='区域';

WorkBook.SaveAS(xlsFileName);
WorkBook.close;
///EclApp.Quit; //退出Excel Application
except
ShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误。');
WorkBook.close;
EclApp.Quit;
eclApp:=Unassigned;
end;
end;




ComObj
新建excel表格 xe5
Delphi小叮当 2014-02-07
  • 打赏
  • 举报
回复
function ExportStrGridToExcel(Args: array of const): Boolean;
var
  iCount, jCount: Integer;
  XLApp: Variant;
  Sheet: Variant;
  I: Integer;
begin
  Result := False;
  if not VarIsEmpty(XLApp) then
  begin
    XLApp.DisplayAlerts := False;
    XLApp.Quit;
    VarClear(XLApp);
  end;

  try
    XLApp := CreateOleObject('Excel.Application');
  except
    Exit;
  end;

  XLApp.WorkBooks.Add;
  XLApp.SheetsInNewWorkbook := High(Args) + 1;

  for I := Low(Args) to High(Args) do
  begin
    with TStringGrid(Args[I].VObject) do
    begin
      XLApp.WorkBooks[1].WorkSheets[I+1].Name := Name;
      Sheet := XLApp.Workbooks[1].WorkSheets[Name];

      for jCount := 0 to RowCount - 1 do
      begin
        for iCount := 0 to ColCount - 1 do
        begin
          Sheet.Cells[jCount + 1, iCount + 1] := Cells[iCount, jCount];
        end;
      end;
    end;
  end;
  XlApp.Visible := True;
end;
StringGrid1导出到excel 编辑版本 delphi xe5
sxper 2014-02-06
  • 打赏
  • 举报
回复
xe5 也没有啊。d7在server标签页哦。顶
踏雪无痕 2014-01-27
  • 打赏
  • 举报
回复
如果是操作EXCEL的导入导出、单元格统计等功能,我建议你使用第三方控件XlsReadWriteII 下载地址: XLSReadWriteII v5.10.25 Cracked for XE2-XE4 (Win32) http://download.csdn.net/detail/wozengcong/6886915 安装步骤: 1、在Embarcadero RAD Studio XE2主菜单中依次点击"Component->Install Packages"添加(Add)XLSRWII5_DXE2.bpl 2、在Embarcadero RAD Studio XE4主菜单中依次点击“Toosl->Options->Delphi Options->Library->Library Path”分别添加Library Path: Obj和XLSReadWriteII的完整路径 使用步骤: XlsReadWriteII在Delphi中读取Excel文件 http://blog.csdn.net/zengcong2013/article/details/18714417 参考步骤: Samples文件夹里面的Delphi文件夹里面有很多源码可以参考
我就是木暮 2014-01-27
  • 打赏
  • 举报
回复
顶顶顶顶顶顶
我就是木暮 2014-01-26
  • 打赏
  • 举报
回复
引用 7 楼 acmsong 的回复:
[quote=引用 4 楼 Isildur2010 的回复:] [quote=引用 3 楼 acmsong 的回复:] [quote=引用 2 楼 acmsong 的回复:] WorkBooks后面去掉[1]试试
我搞错了,没看二楼。。。 你一楼的引用不是对的吗?为什么要改成楼那样的引用。System.Win.ComObj这样是对的吧。[/quote]貌似是对的。但是这段代码是在网上找的,别人的是不用加System.Win.我的不行,必须加上System.Win.所以想知道为什么[/quote] 你在网上找的也是XE2开发环境吗?D7直接用ComObj是可以,XE2貌似是要加前缀。[/quote]应该是D7的。XE2的资料好少。
acmsong 2014-01-26
  • 打赏
  • 举报
回复
引用 4 楼 Isildur2010 的回复:
[quote=引用 3 楼 acmsong 的回复:] [quote=引用 2 楼 acmsong 的回复:] WorkBooks后面去掉[1]试试
我搞错了,没看二楼。。。 你一楼的引用不是对的吗?为什么要改成楼那样的引用。System.Win.ComObj这样是对的吧。[/quote]貌似是对的。但是这段代码是在网上找的,别人的是不用加System.Win.我的不行,必须加上System.Win.所以想知道为什么[/quote] 你在网上找的也是XE2开发环境吗?D7直接用ComObj是可以,XE2貌似是要加前缀。
我就是木暮 2014-01-26
  • 打赏
  • 举报
回复
莫沉啊啊啊啊。。。。。。
我就是木暮 2014-01-26
  • 打赏
  • 举报
回复
引用 3 楼 acmsong 的回复:
[quote=引用 2 楼 acmsong 的回复:]
WorkBooks后面去掉[1]试试


我搞错了,没看二楼。。。
你一楼的引用不是对的吗?为什么要改成楼那样的引用。System.Win.ComObj这样是对的吧。[/quote]去掉[1]是可以了而且是连worksheet后面的[1]也去掉了。这样:

可是还是有错误,这样的:

我就是木暮 2014-01-26
  • 打赏
  • 举报
回复
引用 3 楼 acmsong 的回复:
[quote=引用 2 楼 acmsong 的回复:] WorkBooks后面去掉[1]试试
我搞错了,没看二楼。。。 你一楼的引用不是对的吗?为什么要改成楼那样的引用。System.Win.ComObj这样是对的吧。[/quote]貌似是对的。但是这段代码是在网上找的,别人的是不用加System.Win.我的不行,必须加上System.Win.所以想知道为什么
acmsong 2014-01-26
  • 打赏
  • 举报
回复
引用 2 楼 acmsong 的回复:
WorkBooks后面去掉[1]试试
我搞错了,没看二楼。。。 你一楼的引用不是对的吗?为什么要改成楼那样的引用。System.Win.ComObj这样是对的吧。
acmsong 2014-01-26
  • 打赏
  • 举报
回复
WorkBooks后面去掉[1]试试
我就是木暮 2014-01-26
  • 打赏
  • 举报
回复
第一张图上错了。是这样:

和这样:

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧