【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
最近项目中需要读取一个Excel文件在JSP页面上显示
读取没有问题了,显示有点小问题,有没有成型的代码可以参考的。
就是把Excel原样显示出来即可。
/** * 读取Excel表格内容,生成纯文本 * @param is 输入流 * @return 返回文本字符串 * @throws IOException 抛出IO异常 */ @SuppressWarnings("deprecation") public static String extractTextFromXLS(InputStream is) throws IOException { StringBuffer content = new StringBuffer(); HSSFWorkbook workbook = new HSSFWorkbook(is); //创建对Excel工作簿文件的引用 for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) { if (null != workbook.getSheetAt(numSheets)) { HSSFSheet aSheet = workbook.getSheetAt(numSheets); //获得一个sheet for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) { if (null != aSheet.getRow(rowNumOfSheet)) { HSSFRow aRow = aSheet.getRow(rowNumOfSheet); //获得一行 for (short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) { if (null != aRow.getCell(cellNumOfRow)) { HSSFCell aCell = aRow.getCell(cellNumOfRow); //获得列值 if(aCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){ content.append(aCell.getNumericCellValue()); }else if(aCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){ content.append(aCell.getBooleanCellValue()); }else { content.append(aCell.getStringCellValue()); } } } } } } } return content.toString(); }
上面是我读取.xls文档的代码 返回值是string类型
自己画个table,输出不就ok了,你有什么特殊的要求?
他的意思是说,原样输出, 也就是合并的单元格也显示正确,是这样子的吧?楼主?
输出的时候 还没考虑格式,但是什么都不显示。
如果是在IE的话,可以直接设置respose.setContentType为excel的那种格式,直接输入excel文件流即可.
我以前用jxl读取excel模板然后嵌入数据的,给你参考一下
嗯,谢谢我正在这样做。
把头文件变为text/plain,可以显示了,但是有异常。
我自己写了一个读取Excel表格的工具类,现在读取表格没有问题了,还有个方法判断合并单元格的。
有时间给大家分享下。
上面是我读取.xls文档的代码 返回值是string类型
自己画个table,输出不就ok了,你有什么特殊的要求?
他的意思是说,原样输出, 也就是合并的单元格也显示正确,是这样子的吧?楼主?
输出的时候 还没考虑格式,但是什么都不显示。
如果是在IE的话,可以直接设置respose.setContentType为excel的那种格式,直接输入excel文件流即可.
我以前用jxl读取excel模板然后嵌入数据的,给你参考一下
引用来自#7楼“bobshi”的帖子
如果是在IE的话,可以直接设置respose.setContentType为excel的那种格式,直接输入excel文件流即可.
嗯,谢谢我正在这样做。
把头文件变为text/plain,可以显示了,但是有异常。
我自己写了一个读取Excel表格的工具类,现在读取表格没有问题了,还有个方法判断合并单元格的。
有时间给大家分享下。