码迷,mamicode.com
首页 > 其他好文 > 详细

关于AX操作Excel的方法

时间:2015-04-18 09:55:07      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

这几天用空余时间好好的看了下Excel在AX中的操作.很多东东不是很准确,还有一些东东没有搞明白,不过基本的要求是可以达到了.可以对工作表内的特定行,列或单元格进行读、写操作,以及定义字体颜色,粗体,背景色,还有就是风格,不过好象只有一种,怎么变动都没有改变,郁闷。

static void Job152(Args _args)
{
    #Excel
    //打开Excel表并写入
    SysExcelApplication excel;                                 //定义Excel实例名
    SysExcelWorkbooks books;                                   //定义工作簿集
    SysExcelWorkbook book;                                     //定义工作簿
    SysExcelWorksheets sheets;                                 //定义工作表集
    SysExcelWorksheet sheet;                                   //定义工作表
    SysExcelRange range,rows;
    SysExcelRange  row;                               //定义单元格范围
    SysExcelCells cells;                                       //定义单元格集
    SysExcelCell cell;                                         //定义单元格
    SysExcelStyle      Style;                                  //定义字体风格
    SysExcelStyles              styles;                        //定义字体风格集
    SysExcelInterior            interior;                      //定义单元格底纹
    SysExcelFont                font;                          //定义字体
    sysExcelComment             Comment;
    sysExcelFormatConditions    Conditions;
    sysExcelFormatCondition     Condition ;
    Int I =  0;
    int J =  0;


    //读Excel数据     CCADOConnection cn = new CCADOConnection();                 //定义连接数据源
    CCADOCommand command = new CCADOCommand();                  //定义执行命令
    CCADORecordset rs = new CCADORecordset();                   //定义结果集

    excel= SysExcelApplication::construct();                    //构造Excel实例
    excel.visible(true);                                        //打开Excel程序
    //excel.getOpenFileName(" C://SalesReport,xls");            //打开我的文档对话框
   /* books       = excel.workbooks();                            //实例化一个工作簿
    books.open("C://SalesReport.xls");                          //打开指定的Xls文件

    sheet       = excel.activeSheet();                          //激活当前工作表 (最后保存时处于激活的页)

    sheet.cells().item(1,1).value("TableName"); pause;  */      //在A1单元格填入值"tablename"
    books = excel.workbooks();                                  //于Excel实例取得工作薄集实例

    book = books.add();                                         //于Books取得工作薄实例
    styles      = book.styles();                                // 取得风格实例
    Sheets = excel.worksheets();                                //取得工作表集于Excel实例
    sheet = sheets.itemFromNum(1);                              //  指向特定工作表
    //某行的属性,
    range       = sheet.range(‘F3‘);                           // 指向特定单元格
    rows=sheet.rows();                                          //于sheet实例得到行集合,columns()得到列
    row=rows.item(1);                                           //指定某行?
    row.locked(true);

    sheet.cells().item(1,2).value("25");
  
    style       = styles.add("1");
    style.horizontalAlignment(#xlcenter);                        //单元格水平对齐 #xl center right left

    interior    = style.interior();                             //取得底色实例
    interior.color(WinApi::RGB2int(246, 250, 206));             //设置底色
    font        = style.font();                                 //取得字体实例
    font.bold(true);                                                   //设置字体为粗体
    font.color(winapi::RGB2int(0,0,255)); // RGB2int(153, 204, 255)    //设置字体的颜色

    cells=sheet.cells();
    cell=cells.item(1,1);
    Comment = Cell.addComment();
    Comment.text("ddd");                                         //加注释
    row.autoFit();
    row.style("1");
    row.numberFormat("0.00") ;
    row.locked(true);                                         //锁定范围
    row.formatConditions().delete();                          //删除范围的格式状态,可以多次定以单元格的属性
   
    //某个单元格的属性
    range       = sheet.range(‘A3‘);
    sheet.cells().item(3,1).value("585");
    style       = styles.add("#STYLE_MANDATORY");     //可以用数字代替
    style.horizontalAlignment(#xlleft);                        //单元格水平对齐 #xl center right left

    interior    = style.interior();
    interior.color(WinApi::RGB2int(246, 250, 0));
    font        = style.font();
    font.bold(true);
    font.italic(true);
    font.strikethrough(true);
    font.color(winapi::RGB2int(255,0,0)); // RGB2int(153, 204, 255)
    range.style("#STYLE_MANDATORY");
    range.numberFormat("0.0");
   
    range.locked(true);
    range.formatConditions().delete();
    sheet.name("wind88er");                                     //定义当前工作表的名字


    /*cn = new CCADOConnection();                               //实例连接数据源
    cn.open("Driver={Microsoft Excel Driver (*.xls)};DBQ=C://SalesReport.xls; ReadOnly=False;");  //打开指定的Excel表

    command.activeConnection(cn);                               //激活连接
    command.commandText("Select * From [Sales & Inv Analysis$]"); //打开指定的工作表
    rs = command.execute();                                       //执行命令,得到结果集

   For (I=0;I<=13;I++)
        rs.moveNext();

    For (I=0;I<=10;I++) {
        Print i, ‘ ‘ , rs.fields().itemIdx(I).value();
//       Print rs.fields().itemIdx(I).name();
//       rs.moveNext();
        If (i == 4)
            rs.fields().itemIdx(I).value() ;

    }  */

}

 

关于AX操作Excel的方法

标签:

原文地址:http://www.cnblogs.com/qingfyy/p/4436611.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!