我们在全部的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 - 项目分解篇的更多相关文章

  1. [转]Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...

  2. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...

  3. Android开源项目第一篇——个性化控件(View)篇

    本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍Android上那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Ga ...

  4. Android开发UI之开源项目第一篇——个性化控件(View)篇

    原文:http://blog.csdn.net/java886o/article/details/24355907 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,主要介绍A ...

  5. 洗礼灵魂,修炼python(82)--全栈项目实战篇(10)—— 信用卡+商城项目(模拟京东淘宝)

    本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) ...

  6. C# Xamarin移动开发项目实战篇

    一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发 ...

  7. 菜鸟教程之工具使用(七)——从GIt上导出Maven项目

    今天继续我们的工具教程,公司用Git作为版本控制工具,所以最近一直在跟Git打交道.也是一边学习一边使用,于是想做一些入门教程,一来自己总结一下,二来还能帮助一些刚刚接触Git的朋友.一举两得,何乐而 ...

  8. unity 代码有调整,重新导出 iOS 最烦的就是 覆盖导出后项目不能打开

    unity  代码有调整,重新导出 iOS 最烦的就是 覆盖导出后项目不能打开,原因是 editor 里面的脚本,破坏了 Unity-iPhone.xcodeproj 里面的结构,具体是什么原因,也不 ...

  9. 导出/打印项目数据报表需要设置IE浏览器

    导出/打印项目数据报表需要设置IE浏览器如下: 1.将本地服务器站点设置为可信站点, 2.通过点击网页上的工具→Internet选项→安全→自定义级别→把关于activeX控件和插件的选项都设置成启用 ...

随机推荐

  1. 使用.net连接domino的尝试

    导入包含Domino命名空间的dll:                  } 这里需要提到的是dynamic cast 运行期绑定的代码,需要做类型转化.

  2. C#线程调用带参数的方法

    在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法.第一种:使用ParameterizedThreadStart.调用 System.Threading.Thread ...

  3. python基础-------模块与包(三)正则表达式

    re模块正则表达式 正则表达式常用符号: [ re模块使用方法]: match(string[, pos[, endpos]]) | re.match(pattern, string[, flags] ...

  4. MySQL5.5编译安装以及Debug

    MySQL5.5以上版本安装是需要cmake 安装步骤: 设置编译参数cmake  -DCMAKE_INSTALL_PREFIX='/data1/guosong/mysql_debug'  -DDEF ...

  5. 将传统项目改造为SSM框架的项目

    首先 第一步改变传统dao层 先要再resource文件夹下创建一个applicationContext.xml  内容如下 关键代码     <!--        使spring扫描包下的所 ...

  6. Android’s HTTP Clients (httpClient 和 httpURLConnect 区别)

    来源自:http://android-developers.blogspot.jp/2011/09/androids-http-clients.html Most network-connected ...

  7. 谷歌浏览器 插件安装配置Momentum chrome

    总之一句话就是这个Momentum插件可以把你的谷歌弄的漂亮一些,来搞一波 下载地址 http://www.cnplugins.com/down/predownnew.aspx?id=33842 下载 ...

  8. hadoop2.5的伪分布式安装配置

    一.windows环境下安装 根据博主写的一次性安装成功了: http://blog.csdn.net/antgan/article/details/52067441 二.linux环境下(cento ...

  9. [flask实践] 解决mysql数据库不支持中文的问题

    接上一篇文章,在解决了mysql+flask环境配置问题之后,往数据库存中文字符串会报1366错误,提示不正确的字符.继而发现默认的mysql采用了Latin1字符集,这种编码是不支持中文的. 如果想 ...

  10. Bootstrap-datepicker3官方文档中文翻译---概述(原版翻译 http://bootstrap-datepicker.readthedocs.io/en/latest/index.html)

    bootstrap-datepicker Bootstrap-datepicker 提供了一个拥有Bootstrap样式的弹性Datepicker控件 Requirements/使用要求 Bootst ...