unigui导出TMS.Flexcel【5】
参考代码
procedure TUniFrmeWebEmbedBase.ExportData;
//导出到excel
var
FlexCelImport1: TExcelFile;
i, rowindex, colindex: Integer;
ms : TMemoryStream;
begin
{ 检查数据集 }
if Assigned(cdsMain) and cdsMain.Active then
try
{ 创建Excel文件 }
FlexCelImport1 := TXlsFile.Create(true);//NewFile(1);
FlexCelImport1.NewFile(); // FlexCelImport1.SupportsXlsx := True;
// FlexCelImport1.NewFile(WorkSheetCount, TExcelFileFormat(2) ); //2 = v2010, 1 = v2007, 0 = v2003
// FlexCelImport1.ActiveSheet := 1; cdsMain.First;
{ 第一行为标题 }
rowindex := ;
colindex := ;
for i := to cdsMain.FieldCount - do
{ 只导出数据集中可视的字段 }
if cdsMain.Fields[i].Visible then
begin
FlexCelImport1.SetCellValue(rowindex, colindex,cdsMain.Fields[i].DisplayLabel);
inc(colindex);
end;
{ 依次导出数据 }
while not cdsMain.Eof do
begin
{ 增加一行 }
inc(rowindex);
colindex := ;
for i := to cdsMain.FieldCount - do
{ 只导出数据集中可视的字段 }
if cdsMain.Fields[i].Visible then
begin
{ 时间和日期字段需要单独出来一下,否则出来的都是浮点数 }
if cdsMain.Fields[i].DataType in [ftDate, ftDateTime, ftTime, ftTimeStamp] then
FlexCelImport1.SetCellValue(rowindex, colindex, cdsMain.Fields[i].AsString)
else
FlexCelImport1.SetCellValue(rowindex, colindex, cdsMain.Fields[i].Value);
inc(colindex);
end;
{ 下一条 }
cdsMain.Next;
end;
FlexCelImport1.PrintLandscape := true;
// FlexCelImport1.
{ 创建内存流 }
ms := TMemoryStream.Create;
try
{ 将Excel保存到内存流 }
FlexCelImport1.save(ms);
ms.Position := ;
{ 将数据流发送到客户端,同时指定下载文件名,非常简单 }
UniSession.SendStream(ms, 'usegear.xls' );
finally
ms.Free;
{ 清理内存 }
FlexCelImport1.Free;
end;
except
on E : Exception do
FlexCelImport1.Free;
end;
end; 参考:
http://forums.unigui.com/index.php?/topic/4197-unigrid-dataset-to-xlsx-export-using-tms-flexcel-an-example/?hl=excel https://www.cnblogs.com/ChinaEHR/p/4012113.html
一并感谢。
调用
procedure TUniFrmeWebEmbedBase_authoManage.act_ExportExecute(Sender: TObject);
begin
cdsMain.Data := Unit_dm.DataModule1.getTabeldata('select * from SM_role') ;
inherited;
end;
效果
这里
TUniFrmeWebEmbedBase_authoManage = class(TUniFrmeWebEmbedBase)
TUniFrmeWebEmbedBase = class(TUniFrame)
unigui导出TMS.Flexcel【5】的更多相关文章
- unigui导出EXCEL使用NATIVEEXCEL
unigui导出EXCEL使用NATIVEEXCEL // 需要nativeexcel控件// cxg 2017-9-9 unit myExcel; interface uses System.Sys ...
- uniGUI试用笔记(七)
uniGUI的文件下载由于TUniSession的存在而变得非常简单,最典型的一个例子就是将列表中的所有数据导出到Excel中.服务器上采用TMS FlexCel控件,先将数据集中的记录导入到Exce ...
- uniGUI试用笔记(六)
uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易.首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件 ...
- C# 7个读写Excel文件的类库
转载自:http://www.cnblogs.com/wintersun/archive/2013/02/26/2933294.html 有时我们在项目需要操作Excel文件,读或写,导出数据等. ...
- 13 Amazing Component Sets Driving Success In Delphi Berlin On Android And IOS
There are quite a few Firemonkey component sets available for Delphi Berlin which can get you ahead ...
- unigui 导入导出数据
导入:首先要用TUniFileUpload将文件从客户端上传至服务端,然后完成导入. TUniFileUpload上传文件的演示代码: UniFileUpload1.Execute; UniFileU ...
- 基于uniGui开发的Delphi后台管理框架uniFramework
uniGui是基于Delphi的一套开发Web应用的UI框架,前端使用的是ExtJS,最新版的uniGUI1.5 1480已支持新版的ExtJS6.5.3.我认为uniGUI是目前Delphi下最完善 ...
- unigui+fastReport实现web打印方案
近日单位需要用到会议通知单的打印功能,故引出篇. unigui是delphi环境下快速开发web应用的优秀工具,不再赘述,下面直接记录使用搭配使用,基本逻辑就是: unigui实现数据录入和浏览的we ...
- unigui+fastreport报表打印
unigui+fastreport报表打印 unigui+fastreport报表打印 FASTREPORT导出成PDF报表,UNIGUI的TUniURLFrame显示PDF报表并打印. func ...
随机推荐
- 18. 视图Ext.Viewport和窗口Ext.Window用法
转自:http://www.cnblogs.com/linjiqin/archive/2011/06/22/2087003.html 视图Ext.Viewport和窗口Ext.Window用法. 1. ...
- 【转载】Java - Wait & Notify
[本文转自]http://www.cnblogs.com/dolphin0520/p/3920385.html 这三个方法的文字描述可以知道以下几点信息: 1)wait().notify()和noti ...
- bzoj 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚【dp+线段树】
设f[i]为i时刻最小花费 把牛按l升序排列,每头牛能用f[l[i]-1]+c[i]更新(l[i],r[i])的区间min,所以用线段树维护f,用排完序的每头牛来更新,最后查询E点即可 #includ ...
- bzoj 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场【bfs】
不是严格小于是小于等于啊!!!!!不是严格小于是小于等于啊!!!!!不是严格小于是小于等于啊!!!!! 是我看不懂人话还是翻译不说人话= = 把所有格子按值排个序,bfs扩展打标记即可 #includ ...
- 待销售分拣单App数据推送
管理待分拣商品的App的显示操作
- 学习RFT之:TestObject.find方法的了解与使用
第一部分:了解TestObject.find 一.TestObject.find方法的作用 1.测试过程中动态的找到测试对象(控件.标签等),使我们的测试用例不再依赖RFT自带的对象地图(Object ...
- 鼠标拖拽移动Java界面组件
默认的,Frame或者JFrame自身已经实现了鼠标拖拽标题栏移动窗口的功能. 只是,当你不满意java的JFrame样式,隐藏了标题栏和边框,又或者干脆直接使用JWindow,那你又该怎么实现鼠标拖 ...
- MySQL详解(25)-----------MySQL性能优化
1. 简介 在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响.MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性 ...
- clipboard.min.js 复制表格内容
<script type="text/javascript" src="js/clipboard.min.js"></script> & ...
- 常用Linux命令(长期更新)
有些命令如果不常用,老是记不住,每每用到总还要去查,特此将一些命令记录在此: (0)按指定时间删除文件 find target_dir -type f -mtime +3 -exec rm {} \; ...