我正在尝试创建一个类,以便在将其上传到网站时读取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模板,它将保存在我的桌面上。 该文件将包含标题标题,我能够键入我想要的单元格数据。
答案 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 );