zoukankan      html  css  js  c++  java
  • 使用ExcelIo类操作读取excel文件

    static void NJ_MF_Test_ExcelIoTest(Args _args)
    {
        ExcelIo io;
        #Excel
        dialogField dialogFilename;
        Dialog dialog = new Dialog("Excel Upload");
        container con;
        ;
        dialogFilename = dialog.addField(typeId(FilenameOpen));
        dialog.filenameLookupTitle("Upload from Excel");
        dialog.filenameLookupFilter(["@SYS28576",#XLSX, "@SYS28576",#XLS]);
        if (!dialog.run())
            return;
        io = new ExcelIo(dialogFilename.value(), 'r');
        setprefix("Excel Import");
        while (io.status() == IO_Status::Ok)
        {
            con = io.read();
            info(con2str(con));
        }
        io.close(); //To quit Excel
    }

    -------------------------------------------------------------------

    Exportfile for AOT version 1.0 or later
    Formatversion: 1

    ***Element: CLS

    ; Microsoft Dynamics AX Class: ExcelIo udl鎠t
    ; --------------------------------------------------------------------------------
      CLSVERSION 1
      CLASS #ExcelIo
        PROPERTIES
          Name                #ExcelIo
          Extends             #
          RunOn               #Called from
        ENDPROPERTIES
        METHODS
          Version: 3
          SOURCE #classDeclaration
            #class ExcelIo
            #{
            #    SysExcelApplication application;    // Excell application
            #    SysExcelCells cells;                // Excell cell object
            #    int maxRow;                         // Max number of rows, 1 based
            #    int maxCol;                         // Max number of columns, 1 based
            #    int curRow;                         // Current row number
            #}
          ENDSOURCE
          SOURCE #close
            #public void close()
            #{
            #    if (application)
            #        application.quit();
            #}
          ENDSOURCE
          SOURCE #maxCol
            #public Column maxCol()
            #{
            #    return maxCol;
            #}
          ENDSOURCE
          SOURCE #maxRow
            #public Row maxRow()
            #{
            #    return maxRow;
            #}
          ENDSOURCE
          SOURCE #new
            #public void new(str _filename, str _mode)
            #{
            #    SysExcelWorkBooks   workBooks;
            #    SysExcelWorkSheets  workSheets;
            #    SysExcelWorkSheet   workSheet;
            #    COM com1, com2;
            #    #File
            #    ;
            #    try
            #    {
            #        application = SysExcelApplication::construct();
            #        application.visible(false);
            #        workBooks   = application.workbooks();
            #        workBooks.open(_filename, 0, _mode == #io_read);
            #
            #        workSheets  = workBooks.item(1).worksheets();
            #        workSheet   = workSheets.itemFromNum(1);
            #        cells       = workSheet.cells();
            #
            #        com1   = workSheet.comObject();
            #        com1   = com1.usedRange();
            #        com2   = com1.rows();
            #        maxRow = com2.count();
            #
            #        com2   = com1.columns();
            #        maxCol = com2.count();
            #    }
            #    catch
            #    {
            #        exceptionTextFallThrough();
            #    }
            #}
          ENDSOURCE
          SOURCE #read
            #public container read()
            #{
            #    container ret;
            #    int col;
            #    ;
            #    curRow++;
            #    for (col = 1; col <= maxCol; col++)
            #    {
            #        ret += new CCADOField(cells.item(curRow,col).comObject()).value();
            #    }
            #    return ret;
            #}
          ENDSOURCE
          SOURCE #status
            #public IO_Status status()
            #{
            #    return !cells ? IO_Status::ErrorOpen : curRow < maxRow ? IO_Status::Ok : IO_Status::FileTooShort;
            #}
          ENDSOURCE
          SOURCE #writeExp
            #public boolean writeExp(container _data)
            #{
            #    throw error(Error::wrongUseOfFunction(funcName()));
            #}
          ENDSOURCE
        ENDMETHODS
      ENDCLASS

    ***Element: END

  • 相关阅读:
    论球迷和程序员
    山哥,你是怎么提高设计能力的?
    一个想休息的线程:JVM到底是怎么处理锁的?怎么不让我阻塞呢?
    由“面经”引发的思考
    99%的创业公司都不值得加入
    大牛是怎么炼成的?
    RMQ问题 与众不同 尚未攻克
    YbtOj例题:二叉堆3 龙珠游戏
    离散化模板
    YbtOJ练习:广搜 3 追捕小狗
  • 原文地址:https://www.cnblogs.com/perock/p/2352883.html
Copyright © 2011-2022 走看看