C#利用EXCEL做報表

Visual Studio.Net 自2001年2月问世以来,受到越来越多人的喜爱,C#做为主力军,集VB、Delphi的简单和VC的简炼与强大于一体,更是让许多人爱不释手,纷纷倒 向它的怀抱。通常的软件都要用到数据库,数据库中必然要用到报表,在Visual Studio.Net中自带了一个水晶报表,虽然功能十分强大,但市面上相关资料非常缺乏,网上全面介绍其使用的文章也屈指可数。Excel是微软公司办 公自动化套件中的一个软件,主要是用来处理电子表格。Excel以其功能强大,界面友好等受到了许多用户的欢迎,几乎每一台机器都安装了它,因此,我们可 以将数据导入Excel进行排版。

由于Excel的格式是封闭的,无法直接创建一个Excel文件然后来排版,只有借助Com组件来完成,同样,介绍用C#操作Excel的文章也就 那么几篇,基本上都是告诉你如何新建一个Excel文件,然后,将数据写入某单元格,最多再零星告诉你如何合并单元格,真正使用起来根本无法用C#做出漂 亮报表。本文巧妙利用Excel的宏来自动排版,大大减少了工作量,而且可以随时修改模板而无须修改程序,非常实用。

本人使用的是Office 2000,操作系统为windows 2000 professinal,为使问题简单化,这里不介绍数据库的知识,我一个二维数组来代表一个数据库中的表,我们的目的是将该数组放到Excel中,并排版成需要的格式,数组如下:

车牌号 类 型 品 牌 型 号 颜 色 附加费证号 车架号
浙KA3676 危险品 货车 铁风SZG9220YY 1110708900 022836
浙KA4109 危险品 货车 解放CA4110P1K2 223132 010898
浙KA0001A 危险品 货车 南明LSY9190WS 1110205458 0474636
浙KA0493 上普货 货车 解放LSY9190WS 1110255971 0094327
浙KA1045 普货 货车 解放LSY9171WCD 1110391226 0516003
浙KA1313 普货 货车 解放9190WCD 1110315027 0538701
浙KA1322 普货 货车 解放LSY9190WS 24323332 0538716
浙KA1575 普货 货车 解放LSY9181WCD 1110314149 0113018
浙KA1925 普货 货车 解放LSY9220WCD 1110390626 00268729
浙KA2258 普货 货车 解放LSY9220WSP 1110481542 00320

为了在C#中使用Excel,我们要先做一点准备工作,通过查找(前提是你安装Visual Studio.Net和Excel 2000),在你的计算机中找到TlbImp和Excel9.olb,将他们复制到一个文件夹中,在DOS窗口中执行 TlbImp Excel9.olb,这时会产生以下三个文件:Excel.dll、Office.dll和VBIDE.dll。

我们来完成两项任务,一是按网上文章介绍的方法,增加将数据写入一个Excel文件,也就是做一个简单报表,二是用Excel创建一个文件,然后以此文件为模板生成高级报表。

打开Visual Studio.Net,新建一个C#的windows应用程序,取名为MyExcel。根据个人爱好,对窗口做一些美化工作,然后放两个按钮:btnNormal和btnAdvance,Caption分别为“普通报表”和“高级报表”。

打开Visual Studio.Net,新建一个C#的windows应用程序,取名为MyExcel。根据个人爱好,对窗口做一些美化工作,然后放两个按钮:btnNormal和btnAdvance,Caption分别为“普通报表”和“高级报表”。

点“打开”按钮,再点“确定”按钮。

切换到代码窗口中,在文件头添加下面两个引用:

  • using System.IO;
    using System.Reflection;

    再添加一个二维数组来表示数据表:

    private string [,] myData=

    {

    {"车牌号","类型","品 牌","型 号","颜 色","附加费证号","车架号"},

    {"浙KA3676","危险品","货车","铁风SZG9220YY","白","1110708900","022836"},

    {"浙KA4109","危险品","货车","解放CA4110P1K2","白","223132","010898"},

    {"浙KA0001A","危险品","货车","南明LSY9190WS","白","1110205458","0474636"},

    {"浙KA0493","上普货","货车","解放LSY9190WS","白","1110255971","0094327"},

    {"浙KA1045","普货","货车","解放LSY9171WCD","蓝","1110391226","0516003"},

    {"浙KA1313","普货","货车","解放9190WCD","蓝","1110315027","0538701"},

    {"浙KA1322","普货","货车","解放LSY9190WS","蓝","24323332","0538716"},

    {"浙KA1575","普货","货车","解放LSY9181WCD","蓝","1110314149","0113018"},

    {"浙KA1925","普货","货车","解放LSY9220WCD","蓝","1110390626","00268729"},

    {"浙KA2258","普货","货车&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值