导出Excel1 - 项目分解篇
我们在全部的MIS系统(信息管理系统)中都能见到他。所以我们把这个通用功能提出来。
项目名称:车辆信息管理系统(中石化石炼)
项目负责人:xiaobin
项目时间:2006.12 - 2007.2
Excel功能模块:
单击事件(Event):
procedure EXCELE1Click(Sender: TObject);
procedure TfrmMain.EXCELE1Click(Sender: TObject);
var
colnum,slnum,i:integer;
headstr:string;
begin
if DataSource_carNum.DataSet.RecordCount=0 then Exit;
//
DataModule_ado.ADODataSet_Excel.Close;
DataModule_ado.ADODataSet_Excel.Open;
//
TreeView1.Items.Clear;
Memo2.Lines.Clear ;
colnum:=DataModule_ado.ADODataSet_Excel.FieldDefList.Count;
Maxnum :=1;
//slnum:=0;
for i:=1 to colnum do
begin
slnum:=1;
headstr:=DataModule_ado.ADODataSet_Excel.FieldDefList[i-1].Name;
while Pos('|',headstr) > 0 do
begin
Delete(headstr, 1, Pos('|', headstr));
slnum:=slnum+1;
end;
if slNum>Maxnum then Maxnum:=slNum;
end;
treeADO(DataModule_ado.ADODataSet_Excel,TreeView1);
try
myexcel := createoleobject('excel.application');
myexcel.application.workbooks.add;
myexcel.caption:=pnlLog.Caption;
myexcel.application.visible:=true;
workbook:=myexcel.application.workbooks[1];
worksheet:=workbook.worksheets.item[1];
except
application.MessageBox('没有发现Excel,请安装office!','提示信息',
MB_OK + MB_ICONINFORMATION);
exit;
end;
WriteheaderADO(DataModule_ado.ADODataSet_Excel,pnlLog.Caption,9,TreeView1);
WriteExcelData(DataModule_ado.ADODataSet_Excel);
//页脚设置
myexcel.activesheet.pagesetup.centerfooter:='第&P页';
//
worksheet.saveAs(excelDir+'\'+dateTimeStrFull+'lcbzsx.xls');
//workbook.close;
//myexcel.quit;
//add logmemo
frame1.addMemoLog(EXCELE1.Caption);
end;
代码凝视:
第6行:假设DataSource(Delphi控件)当前无数据,则退出此事件。
第8行:DataModule_ado为DataModule(Delphi控件 - 数据容器)
第13行:依据ADODataSet_Excel(Delphi控件 - ADODataSet)字段列表。得到Excel列数。
第20-24行:多表头层数计算。
大部分我们用:父表头|子表头|孙表头,来表示一个多表头数据。
第27行:运行treeADO子过程,把表头的层次关系用TreeView(Delphi控件)表示出来。
第28-39行:初始化Excel对象。
myExcel:variant; //电子表格对象
workbook:olevariant; //电子表格部分
worksheet:olevariant; //电子表格工作簿
第40行:运行WriteheaderADO子过程。写Excel表头。
第41行:运行WriteExcelData子过程, 写Excel数据。
导出Excel1 - 项目分解篇的更多相关文章
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...
- Android开源项目第一篇——个性化控件(View)篇
本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...
- Android开发UI之开源项目第一篇——个性化控件(View)篇
原文:http://blog.csdn.net/java886o/article/details/24355907 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍A ...
- 洗礼灵魂,修炼python(82)--全栈项目实战篇(10)—— 信用卡+商城项目(模拟京东淘宝)
本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) ...
- C# Xamarin移动开发项目实战篇
一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发 ...
- 菜鸟教程之工具使用(七)——从GIt上导出Maven项目
今天继续我们的工具教程,公司用Git作为版本控制工具,所以最近一直在跟Git打交道.也是一边学习一边使用,于是想做一些入门教程,一来自己总结一下,二来还能帮助一些刚刚接触Git的朋友.一举两得,何乐而 ...
- unity 代码有调整,重新导出 iOS 最烦的就是 覆盖导出后项目不能打开
unity 代码有调整,重新导出 iOS 最烦的就是 覆盖导出后项目不能打开,原因是 editor 里面的脚本,破坏了 Unity-iPhone.xcodeproj 里面的结构,具体是什么原因,也不 ...
- 导出/打印项目数据报表需要设置IE浏览器
导出/打印项目数据报表需要设置IE浏览器如下: 1.将本地服务器站点设置为可信站点, 2.通过点击网页上的工具→Internet选项→安全→自定义级别→把关于activeX控件和插件的选项都设置成启用 ...
随机推荐
- Node.js CVE-2017-1484复现(详细步骤)
0x00 前言 早上看Sec-news安全文摘的时候,发现腾讯安全应急响应中心发表了一篇文章,Node.js CVE-2017-14849 漏洞分析(https://security.tencent. ...
- 基于Cef内核的多店铺登录器(含源码)
公司是做电商的,在速卖通平台上开了若干店铺,每天都需要登录店铺打理,如:发货提交.获取运单号等.多个店铺的情况下,同时使用浏览器就会非常繁琐,如:要记住帐户名和密码,还要在不同店铺间切换.如果能够制作 ...
- 两个Xml转换为DataSet方法(C#)
///通过传入的特定XML字符串,通过 ReadXml函数读取到DataSet中.protected static DataSet GetDataSetByXml(string xmlData){ ...
- [转载] Mahout
转载自http://hadoop.readthedocs.org/en/latest/Hadoop-Mahout.html# Mahout 12.1 简介 Mahout为推荐引擎提供了一些可扩展的机器 ...
- 转-Gitorious搭建步骤
先标记一下,后续手动验证 http://blog.csdn.net/king_sundi/article/details/7457475 安装Gitorious Git是一个分布式的版本控制系统,用于 ...
- cgg之类型转换
3.类型转换 3.1算术类型转换 编译器默认的隐式转换等级: long double >double >float >long long >long >int >c ...
- overflow-x: scroll;横向滑动详细讲解
overflow-x: scroll;横向滑动(移动端使用详解) css3 , ie8以上 <!DOCTYPE html> <html lang="en"> ...
- AIO5系统中关于赠品处理的方法
最近频繁有人问我,关于赠品在AIO5系统中如何处理.首先AIO5系统支持赠品处理关于赠品,在AIO5系统中走的是[其他出库单]路径:仓库--仓库作业--其他出库单--新增(如下图) 通常赠品对应的业务 ...
- 打字机效果-so easy
html <p> <span>有了梦想,我们的心有了飞翔:有了飞翔,我们的梦想不再遥远......</span> </p> js $(function( ...
- CSS常见布局解决方案
最近要准备移动端项目,大半年没好好写过CSS了,今天恶补了一下CSS的一些布局,下面做一些分享. 水平居中布局 1.margin + 定宽 <div class="parent&quo ...