回 帖 发 新 帖 刷新版面

主题:求助:数据导出到excel问题

使用控件excelapplication,excelworkbook,excelworksheet 来操作数据导出到excel。

在 语句excelapplication1.workbooks.add(emptyparam,0);
出错 UNDECLARED IDENTIFIER:'EMPTYPARAM '
请指教。谢谢

回复列表 (共16个回复)

沙发

晕!!!
兄弟!咱俩的问题正好相反!!
我现在需要的是把EXCEL里的数据用那三个控件通过DBGRID导入数据库!!
呵呵!!!
不过 很显然,你的这个问题某也不会!!!

板凳

试试改成下面的语法:
empty:OleVariant;
empty:=EmptyParam;
ExcelApplication1.Workbooks.add(empty,0);

3 楼


还是不行啊
系统提示:emptyparam 没有定义.
在delphi5下运行正常,可到了delphi7下出现这个问题,是不是还需要添加别的东西,或者在delphi7下有变化呢?

4 楼

empty:Variant;
这样定义看看!

5 楼


我试过,也不行。在delphi 5 下可以的,可到了delphi 7 就不行了。

6 楼

我用的就是 7,而且就是那样声明的啊 !!?
编译通过了,也好使!!
对了,仔接口部分还要USES COMOBJ;

7 楼

使用
USES COMOBJ;
还是不识别emptyparam

8 楼

哦。。。。。
只能等高手来解决了 !!!

9 楼

在uses接口处先把这些全加上:
OleServer,ExcelXP或者Excel2000,ComOBJ,ShellAPI
定义一个全局变量
var ExcelApp:variant;//用来操作EXCEL的OLE对象
function OpenExcel(Excel:string;Model:integer):boolean;//*******打开EXCEL
begin
  result:=true;
  try
    ExcelApp:=CreateOLEObject('Excel.Application');
  except
    Application.MessageBox('打开Excel失败',PChar(Application.Title),MB_ICONERROR);
    Result := False;
  end;
  if model = 1 then//MODEL用来决定打的模式,显视还是隐藏
  ExcelApp.Visible:=true
  else
  ExcelApp.Visible:=false;
  //ExcelApp.Caption:='';
  ExcelApp.WorkBooks.Open(Excel);
  ExcelApp.worksheets[1].Activate;//定义工作表1为当前活动页
end;

procedure CloseExcel();//********************关闭EXCEL
begin
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
ExcelApp:=unassigned;
end;

function ReadExcelStr(row,col:integer):string;//*****读取EXCEL中某单元格内容
begin
  result:=ExcelApp.cells[row,col].value;//row行,col列
end;
ReadExcelStr(row,col)只能返回字符型数据,如果要返回日期,时间等,要别外定义
否则返回的是自动转换过的值

直接将读取的数据赋值给dbgrid的对应位置即可

10 楼


谢谢你的答复
可以给一段将查询结果导出到excel的代码吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册