如何设置Excel与Delphi关联导出完美报表
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;
控件部分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;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询