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

  • 相关阅读:
    [LeetCode] 26. Remove Duplicates from Sorted Array
    [LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal
    [LeetCode] 1248. Count Number of Nice Subarrays
    [LeetCode] 37. Sudoku Solver
    [LeetCode] 36. Valid Sudoku
    [LeetCode] 378. Kth Smallest Element in a Sorted Matrix
    [LeetCode] 547. Friend Circles
    [LeetCode] 733. Flood Fill
    [LeetCode] 695. Max Area of Island
    [LeetCode] 994. Rotting Oranges
  • 原文地址:https://www.cnblogs.com/perock/p/2352883.html
Copyright © 2011-2022 走看看