cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡
《LabVIEW宝典》LabWindows/CVI论坛精华贴NET0816以太网数据采集卡
查看: 6746|回复: 29

今天正好用到labview中excel打印预览,这里共享vi源码出来给大家!

[复制链接]
发表于 2009-1-5 00:03:42 | 显示全部楼层 |阅读模式
本帖最后由 cpubbs 于 2009-1-5 13:14 编辑

今天正好用到excel打印预览,这里共享出来给大家!用到的原理如下,完全按这个做出来的,大家可以直接当成子VI使用,指定路径即可,很方便!里面有注意事项,希望对有需要的朋友有用,顺祝大家新年快乐,本贴脚下附有程序源码

一)   使用动态创建的方法
首先创建   Excel   对象,使用ComObj:
        var   ExcelApp:   Variant;
        ExcelApp   :=   CreateOleObject(   'Excel.Application '   );
  1)   显示当前窗口:
        ExcelApp.Visible   :=   True;
  2)   更改   Excel   标题栏:
        ExcelApp.Caption   :=   '应用程序调用   Microsoft   Excel ';
  3)   添加新工作簿:
        ExcelApp.WorkBooks.Add;
  4)   打开已存在的工作簿:
        ExcelApp.WorkBooks.Open(   'C:\Excel\Demo.xls '   );
  5)   设置第2个工作表为活动工作表:
        ExcelApp.WorkSheets[2].Activate;     或   
        ExcelApp.WorksSheets[   'Sheet2 '   ].Activate;
  6)   给单元格赋值:
        ExcelApp.Cells[1,4].Value   :=   '第一行第四列 ';
  7)   设置指定列的宽度(单位:字符个数),以第一列为例:
        ExcelApp.ActiveSheet.Columns[1].ColumnsWidth   :=   5;
  8)   设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
        ExcelApp.ActiveSheet.Rows[2].RowHeight   :=   1/0.035;   //   1厘米
  9)   在第8行之前插入分页符:
        ExcelApp.WorkSheets[1].Rows[8].PageBreak   :=   1;
  10)   在第8列之前删除分页符:
        ExcelApp.ActiveSheet.Columns[4].PageBreak   :=   0;
  11)   指定边框线宽度:
        ExcelApp.ActiveSheet.Range[   'B34 '   ].Borders[2].Weight   :=   3;
        1-左         2-右       3-顶         4-底       5-斜(   \   )           6-斜(   /   )
  12)   清除第一行第四列单元格公式:
        ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
  13)   设置第一行字体属性:
        ExcelApp.ActiveSheet.Rows[1].Font.Name   :=   '隶书 ';
        ExcelApp.ActiveSheet.Rows[1].Font.Color     :=   clBlue;
        ExcelApp.ActiveSheet.Rows[1].Font.Bold       :=   True;
        ExcelApp.ActiveSheet.Rows[1].Font.UnderLine   :=   True;
  14)   进行页面设置:
    a.页眉:
        ExcelApp.ActiveSheet.PageSetup.CenterHeader   :=   '报表演示 ';
    b.页脚:
        ExcelApp.ActiveSheet.PageSetup.CenterFooter   :=   '第&页 ';
    c.页眉到顶端边距2cm:
        ExcelApp.ActiveSheet.PageSetup.HeaderMargin   :=   2/0.035;
    d.页脚到底端边距3cm:
        ExcelApp.ActiveSheet.PageSetup.HeaderMargin   :=   3/0.035;
    e.顶边距2cm:
        ExcelApp.ActiveSheet.PageSetup.TopMargin   :=   2/0.035;
    f.底边距2cm:
        ExcelApp.ActiveSheet.PageSetup.BottomMargin   :=   2/0.035;
    g.左边距2cm:
        ExcelApp.ActiveSheet.PageSetup.LeftMargin   :=   2/0.035;
    h.右边距2cm:
        ExcelApp.ActiveSheet.PageSetup.RightMargin   :=   2/0.035;
    i.页面水平居中:
        ExcelApp.ActiveSheet.PageSetup.CenterHorizontally   :=   2/0.035;
    j.页面垂直居中:
        ExcelApp.ActiveSheet.PageSetup.CenterVertically   :=   2/0.035;
    k.打印单元格网线:
        ExcelApp.ActiveSheet.PageSetup.PrintGridLines   :=   True;
  15)   拷贝操作:
    a.拷贝整个工作表:
        ExcelApp.ActiveSheet.Used.Range.Copy;
    b.拷贝指定区域:
        ExcelApp.ActiveSheet.Range[   'A1:E2 '   ].Copy;
    c.从A1位置开始粘贴:
        ExcelApp.ActiveSheet.Range.[   'A1 '   ].PasteSpecial;
    d.从文件尾部开始粘贴:
        ExcelApp.ActiveSheet.Range.PasteSpecial;
  16)   插入一行或一列:
    a.   ExcelApp.ActiveSheet.Rows[2].Insert;
    b.   ExcelApp.ActiveSheet.Columns[1].Insert;
  17)   删除一行或一列:
    a.   ExcelApp.ActiveSheet.Rows[2].Delete;
    b.   ExcelApp.ActiveSheet.Columns[1].Delete;
  18)   打印预览工作表:
        ExcelApp.ActiveSheet.PrintPreview;
  19)   打印输出工作表:
        ExcelApp.ActiveSheet.PrintOut;
  20)   工作表保存:
        if   not   ExcelApp.ActiveWorkBook.Saved   then
        ExcelApp.ActiveSheet.PrintPreview;
  21)   工作表另存为:
        ExcelApp.SaveAs(   'C:\Excel\Demo1.xls '   );
  22)   放弃存盘:
        ExcelApp.ActiveWorkBook.Saved   :=   True;
  23)   关闭工作簿:
        ExcelApp.WorkBooks.Close;
  24)   退出   Excel:
        ExcelApp.Quit;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-1-5 00:04:33 | 显示全部楼层
 楼主| 发表于 2009-1-5 00:21:09 | 显示全部楼层
本帖最后由 cpubbs 于 2009-1-5 00:22 编辑

这几天有二新采集卡正在写文档,弄好了等发布以后抽空做个功能较好的完整程序上来:包括一些信号分析,文件数据存储回放,信号采集,打印之类的!同时也希望大家多多共享自己的好资料,谢谢!与人方便,自己方便,大家都共享出来了,大家都能相互补充和获得更多的资源!
 楼主| 发表于 2009-1-5 11:14:30 | 显示全部楼层
里面还有很多功能没有去做,大家可以继续完善,同样完成了也希望大家共享出来给大家,谢谢!
发表于 2009-1-5 12:52:51 | 显示全部楼层
顶一个,谢谢分享。
发表于 2009-1-5 14:32:51 | 显示全部楼层
不知赖兄有没有试过,以前我在VB中调用EXCEL的时候会出现打开或创建EXCEL后不能正常关闭EXCEL调用.不知在LV中会不会出现这种情况.
也就是第一次调用EXCEL没有问题,不退出程序再进行第二次调用时就会出现错误,而且EXCEL有2000版和2003版,及2007版的差别.
 楼主| 发表于 2009-1-5 14:37:48 | 显示全部楼层
只要用户关了预览的就可以了,我是昨晚试过,但只试了OFFICE的2003的!兄弟可以试试!
发表于 2009-1-5 14:59:10 | 显示全部楼层
发表于 2009-1-6 11:23:14 | 显示全部楼层
辛苦了,支持一下。
发表于 2009-1-7 10:40:51 | 显示全部楼层
发表于 2009-2-2 01:25:25 | 显示全部楼层
发表于 2009-2-2 01:26:51 | 显示全部楼层
不知道用report generation 行不行,我觉得这个是ni自己的,功能应该更强大一些吧
发表于 2009-3-31 22:03:59 | 显示全部楼层
发表于 2009-9-14 10:19:51 | 显示全部楼层
顶一个,学习中。。。
发表于 2009-9-14 20:29:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|cpubbs论坛. ( 粤ICP备09171248号

GMT+8, 2017-12-12 05:00 , Processed in 0.315196 second(s), 11 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表