zoukankan      html  css  js  c++  java
  • AX导出Excel(样式)

    在Axapta内通过使用COM 类来构建Excel表,并控制相关单元格的属性设置:如字体的颜色,使用的字体名称,字体大小;以及单元格的边框设置,对齐方式。

    使用了Axapta系统当中的SysExcel 以及继承自SysExcel的相关子类。COM 类是Axapta封装的一个系统类。

    对于Excel当中控制单元格对齐,边框等等的具体代码你可以参考VBA的实现。在AX当中用COM对象来实现这些属性设置时的语句与VBA实现基本一致。你比如简单的字体名称,大小设置。Font.name(); Font.size(); 但也有些不太一致。比如在VBA里,添加边框时,你可以控制到单元格的上下左右边框(range.Borders(1)). 而与此相对,在AX里,通过COM对象只能控制整个边框。(Cell.Borders())。

    另外需要主要,在用代码设置这些属性时,必须知道与此相关的常量值。比如居中对齐时的常量值是多少。

    首先,在SysExcelRange 类里添加的BorderLine()方法。

     1 public void BorderLine()//Added by Ema 12/1/2009
     2 {
     3     Com        borders;
     4     ComVariant  LineStyle,Weight,ColorIndex;
     5     int        xlEdgeBottom = 9;
     6     int        xlContinuous = 1;
     7     int        xlThin =       2;
     8     int        xlAutomatic  = -4105;
     9    
    10    borders    = range.Borders() ;
    11    LineStyle  = borders.LineStyle(xlContinuous);
    12    Weight     = borders.Weight(xlThin);
    13    ColorIndex = borders.ColorIndex(xlAutomatic);
    14 }

    下面是Job示例。

     1 static void generateExcel(Args _args)
     2 {    
     3      SysExcelApplication excel;
     4      SysExcelWorkbooks   books;
     5      SysExcelWorkbook    book;
     6      SysExcelWorksheets  sheets;
     7      SysExcelWorksheet   sheet;
     8      SysExcelStyles      styles;
     9      SysExcelStyle       ExcelStyle;
    10      SysExcelFont        ExcelFont;
    11      ;
    12      excel = SysExcelApplication::construct();
    13      books = excel.workbooks();
    14      book  = books.add();
    15 
    16      //定义字体样式   
    17      styles     = book.styles();
    18      ExcelStyle = styles.add("bold");
    19      ExcelFont  = ExcelStyle.font();
    20      ExcelFont.bold(true); //字体加粗,除此之外,SysExcelFont类下面还有设置字体颜色,  斜体字,添加删除线的方法。你也可以在该类下面添加设置字体名称,字体大小的方法。
    21 
    22      Sheets = book.worksheets();
    23      sheet  = sheets.itemFromNum(1);
    24      sheet.name('test');
    25      excel.visible(true);
    26 
    27      sheet.cells().item(2,2).value('ItemID');
    28      sheet.cells().range('B2:C4').comObject().MergeCells(true);//指定的单元格合并
    29      sheet.cells().range('B2:C4').style('bold'); //对该区域应用前面定义的style.
    30      sheet.cells().range('B2:C4').horizontalAlignment(3);//水平居中对齐,在AX5.0的SysExcelRange 类里有现成的方法。同理,你可以依样化葫芦添加verticalAlignment()的方法进行单元格的垂直对齐方式。
    31      sheet.cells().range('B2:C4').BorderLine();//给单元格画边框。
    32 }
  • 相关阅读:
    Java并发基础10:原子性操作类的使用
    Java并发基础09. 多个线程间共享数据问题
    Java并发基础08. 造成HashMap非线程安全的原因
    Java并发基础07. ThreadLocal类以及应用技巧
    Java并发基础06. 线程范围内共享数据
    Java并发基础05. 传统线程同步通信技术
    Java并发基础04. 线程技术之死锁问题
    我是如何从通信转到Java软件开发工程师的?
    IOS 判断耳机插入/拔出
    海量数据处理
  • 原文地址:https://www.cnblogs.com/Jinnchu/p/2659605.html
Copyright © 2011-2022 走看看