cpubbs 发表于 2009-1-5 00:03:42

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

本帖最后由 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.Activate;   或   
      ExcelApp.WorksSheets[   'Sheet2 '   ].Activate;
6)   给单元格赋值:
      ExcelApp.Cells.Value   :=   '第一行第四列 ';
7)   设置指定列的宽度(单位:字符个数),以第一列为例:
      ExcelApp.ActiveSheet.Columns.ColumnsWidth   :=   5;
8)   设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
      ExcelApp.ActiveSheet.Rows.RowHeight   :=   1/0.035;   //   1厘米
9)   在第8行之前插入分页符:
      ExcelApp.WorkSheets.Rows.PageBreak   :=   1;
10)   在第8列之前删除分页符:
      ExcelApp.ActiveSheet.Columns.PageBreak   :=   0;
11)   指定边框线宽度:
      ExcelApp.ActiveSheet.Range[   'B3:D4 '   ].Borders.Weight   :=   3;
      1-左         2-右       3-顶         4-底       5-斜(   \   )         6-斜(   /   )
12)   清除第一行第四列单元格公式:
      ExcelApp.ActiveSheet.Cells.ClearContents;
13)   设置第一行字体属性:
      ExcelApp.ActiveSheet.Rows.Font.Name   :=   '隶书 ';
      ExcelApp.ActiveSheet.Rows.Font.Color   :=   clBlue;
      ExcelApp.ActiveSheet.Rows.Font.Bold       :=   True;
      ExcelApp.ActiveSheet.Rows.Font.UnderLine   :=   True;
14)   进行页面设置:
    a.页眉:
      ExcelApp.ActiveSheet.PageSetup.CenterHeader   :=   '报表演示 ';
    b.页脚:
      ExcelApp.ActiveSheet.PageSetup.CenterFooter   :=   '第&P页 ';
    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.Insert;
    b.   ExcelApp.ActiveSheet.Columns.Insert;
17)   删除一行或一列:
    a.   ExcelApp.ActiveSheet.Rows.Delete;
    b.   ExcelApp.ActiveSheet.Columns.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;

cpubbs 发表于 2009-1-5 00:04:33

上面的关于EXCEL动态创建方法的文档说明来源于:

http://topic.csdn.net/u/20070611 ... 8-df39cb15e427.html

cpubbs 发表于 2009-1-5 00:21:09

本帖最后由 cpubbs 于 2009-1-5 00:22 编辑

这几天有二新采集卡正在写文档,弄好了等发布以后抽空做个功能较好的完整程序上来:包括一些信号分析,文件数据存储回放,信号采集,打印之类的!同时也希望大家多多共享自己的好资料,谢谢!与人方便,自己方便,大家都共享出来了,大家都能相互补充和获得更多的资源!

cpubbs 发表于 2009-1-5 11:14:30

里面还有很多功能没有去做,大家可以继续完善,同样完成了也希望大家共享出来给大家,谢谢!

tx 发表于 2009-1-5 12:52:51

顶一个,谢谢分享。

ricken 发表于 2009-1-5 14:32:51

不知赖兄有没有试过,以前我在VB中调用EXCEL的时候会出现打开或创建EXCEL后不能正常关闭EXCEL调用.不知在LV中会不会出现这种情况.
也就是第一次调用EXCEL没有问题,不退出程序再进行第二次调用时就会出现错误,而且EXCEL有2000版和2003版,及2007版的差别.

cpubbs 发表于 2009-1-5 14:37:48

只要用户关了预览的就可以了,我是昨晚试过,但只试了OFFICE的2003的!兄弟可以试试!

romeo2xiao 发表于 2009-1-5 14:59:10

猛顶一下老大

wdyjz 发表于 2009-1-6 11:23:14

辛苦了,支持一下。

nisunwu 发表于 2009-1-7 10:40:51

猛顶一下老大

fjczd 发表于 2009-2-2 01:25:25

非常感谢分享

fjczd 发表于 2009-2-2 01:26:51

不知道用report generation 行不行,我觉得这个是ni自己的,功能应该更强大一些吧

Obama 发表于 2009-3-31 22:03:59

好。正好要。

xingkong432 发表于 2009-9-14 10:19:51

顶一个,学习中。。。

anjony 发表于 2009-9-14 20:29:17

太好了,可以学习下
页: [1] 2
查看完整版本: 今天正好用到labview中excel打印预览,这里共享vi源码出来给大家!