最近项目中需要读取一个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模板然后嵌入数据的,给你参考一下
如果是在IE的话,可以直接设置respose.setContentType为excel的那种格式,直接输入excel文件流即可.
嗯,谢谢我正在这样做。
######把头文件变为text/plain,可以显示了,但是有异常。
######我自己写了一个读取Excel表格的工具类,现在读取表格没有问题了,还有个方法判断合并单元格的。
有时间给大家分享下。