关于AX操作Excel的方法

来源:互联网 发布:录像分析视频软件 编辑:程序博客网 时间:2024/05/22 07:47
这几天用空余时间好好的看了下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() ;
    }  */
}
 
原创粉丝点击