阅读xlsx并导入它

时间:2014-05-21 02:40:19

标签: java excel apache-poi xlsx xssf

我正在尝试创建一个类,以便在将其上传到网站时读取XLSX文件。
我有代码将文件上传到服务器。文件可以上传,但无法从excel中捕获数据 我可以知道如何解决或修改此代码,以便能够在网上看到数据吗? 我知道还有其他一些重复的问题,但经过尝试,这些答案似乎对我不起作用。
如果我删除行public static void ...,那么我将收到此错误:包应包含内容类型部分[M1.13]

public HashMap getConstructJXLList_xlsx(UploadedFile File, int Sheetindex) {
    String _LOC = "[PageCodeBase: getConstructJXLList_xlsx]";

    HashMap _m = new HashMap();
    return _m;
}

    //InputStream _is = null;

    public static void main(String[] args)
        {
            try {
            FileInputStream input = new FileInputStream(new File("C:\\Users\\admin\\Desktop\\Load_AcctCntr_Template.xlsx"));
            org.apache.poi.ss.usermodel.Workbook wb = WorkbookFactory.create(input);
            org.apache.poi.ss.usermodel.Sheet s = wb.getSheetAt(0);

            Iterator<Row> rows = s.rowIterator();

                    while (rows.hasNext())
                    {
                        Row row = rows.next();
                        Iterator cells = row.cellIterator();
                        while (cells.hasNext())
                        {
                            XSSFCell cell = (XSSFCell) cells.next();

                            if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING)
                            {
                                System.out.print(cell.getStringCellValue() + "t");
                            }
                            else if(cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC)
                            {
                                System.out.print(cell.getNumericCellValue() + "t");
                            }
                            else if(cell.CELL_TYPE_BLANK==cell.getCellType()) 
                                System.out.print( "BLANK " ); 
                            else 
                                System.out.print("Unknown cell type");
                        }
                input.close();
            }
                }
            catch (Exception e)
            {
                e.printStackTrace();
            }
}

如果我只是从上面运行main方法,那就是输出:
0000002b SystemOut O [RedirectLogin:requiredRights] 1.0en1102.xhtml
0000002b SystemOut O [En1102:doEn1102_command_readfileAction] 1.0
0000002b SystemOut O [En1102:onPageLoadBegin] 1.0
似乎服务器甚至没有通过上面的代码运行..

我可以在网站上下载excel模板,它将保存在我的桌面上。 该文件将包含标题标题,我能够键入我想要的单元格数据。

1 个答案:

答案 0 :(得分:0)

要阅读xlsx文件,您应该使用:

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

XSSFWorkbook wb;
XSSFSheet sheet;
XSSFRow row;
XSSFCell cell;

FileInputStream input = new FileInputStream(new File("C:\\Users\\admin\\Desktop\\Load_AcctCntr_Template.xlsx"));
wb = new XSSFWorkbook(input );