如何设置Excel与Delphi关联导出完美报表

 我来答
彼岸的暗夜f5d
高粉答主

2016-03-29 · 每个回答都超有意思的
知道顶级答主
回答量:4.1万
采纳率:90%
帮助的人:1.1亿
展开全部

控件部分1:先安装FlexCel控件,并引入安装路径。

控件部分2:在DFM窗体,加入FlexCelReport、XLSAdapter及FlexCelImport三个控件。

Excel部分1:首先,设置好报表格式,本例格式如图。

Excel部分2:定义数据导出区域(例中为选中A1:P7):在菜单中依次选择插入>>名称>>定义。

Excel部分3:在弹出的窗口中,输入“__main__”(此项固定),单击添加按钮,再按确定按钮。

Excel部分4:重中之重:定义关联query的数据导出项(例中为选中A4:P4),导出Excel时,会自动显示所有记录行。

Excel部分5:在弹出的窗口中,输入“__qyXSmaster__”(例中的qyXSmaster为用户自定义项,即为query的名称),单击添加按钮,再按确定按钮。

Excel部分6:设置数据列,以便于对应query中的例名并导出相应数据。格式为##qyXSmaster(query名称)##ilab_name(列名),

记得一定要打上两个#。至此,Excel的部分已经设置完毕。

代码部分:接下来,为代码实现部分。在导出按钮中,参照代码如下:

procedure TfmSM310.muN4Click(Sender: TObject);

var dir :string;

begin

  Screen.Cursor := crHourglass;

  qytemp2.Close;

  qytemp2.ParamByName('mo_no').AsString := mo_no; //mo_no为条件参数

  qytemp2.Open;

  dir := GetCurrentDir;            //获取导出路径

  if fileexists(dir+'\SamplesItem_1.xls') then

     deletefile(dir+'\SamplesItem_1.xls'); //如导出路径中已存在导出文件,先删除;

  FlexcelReport1.FileName := dir+'\SamplesItem_1.xls';  //预定义导出文件名

  FlexcelReport1.Template := reportpath+'SamplesItem.xls'; //设置加载模板名

  try

    FlexcelReport1.Run;

  finally

    Screen.Cursor := crDefault;

  end;

  ShellExecute(0, nil, PChar(dir+'\SamplesItem_1.xls'), nil, nil, SW_SHOWNORMAL);

  Screen.Cursor := crDefault;

end;

匿名用户
2016-03-21
展开全部
有两个方案:
1、通过Excel的VBA,在Excel中执行类似宏的代码,将Excel中的数据转存为文本或其它Delphi能读取的格式文件,剩下的就是Delphi的事了
2、直接通过Delphi的代码访问到Excel表格,将Excel文件作为一个对象来处理,同样可分出单元格和各单元格的各数值等属性,可以搜一下Delphi如何访问EXCEL数据搞清楚具体操作
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式