[原]java输出Excel
来源:互联网 发布:手机超强望远镜软件 编辑:程序博客网 时间:2024/04/27 20:29
poi.jar
int excelSize = 65535;int excelSell = 32767;@SuppressWarnings("deprecation")public HSSFWorkbook writeBook(Map<String, List<List<String>>> sheetDataMap) throws IOException{//workbook工作表的序号int workBookNumber = 0;HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = null;HSSFRow row = null;List<String> keyList = this.getKeys(sheetDataMap);for(String key : keyList){List<List<String>> dataList = sheetDataMap.get(key);int dateListSize = dataList.size();int count = (dateListSize % excelSize == 0)?(dateListSize / excelSize):(dateListSize / excelSize + 1);for(int num = 0; num < count; num++){sheet = workbook.createSheet();workbook.setSheetName(workBookNumber++, key + (num + 1),(short)1);int tempNum = num * excelSize;for(int i = tempNum, tempSize = ((num + 1) * excelSize < dateListSize)?((num + 1) * excelSize):(dateListSize); i < tempSize; i++){row = sheet.createRow(i - tempNum);short colNum = 0;for(short j = 0, size1 = (short)dataList.get(i).size(); j < size1; j++){String tempStr = dataList.get(i).get(j);if("null".equals(tempStr) || tempStr == null || tempStr.length() == 0){tempStr = " ";}////一个Excel单元格不能超过32767个字符int cellLen = tempStr.length();int celldiv = cellLen / excelSell;if(cellLen % excelSell != 0){celldiv += 1;}for(short m = 0; m < celldiv; m++){String colStr = tempStr.substring(m * excelSell, (m + 1) * excelSell > cellLen? cellLen : (m + 1) * excelSell);colNum = (short)(colNum + m);try {row.createCell(colNum).setCellValue(Integer.parseInt(colStr));} catch (NumberFormatException e) {try {row.createCell(colNum).setCellValue(Float.parseFloat(colStr));} catch (NumberFormatException e1) {row.createCell(colNum).setCellValue(new HSSFRichTextString(colStr));}}}colNum++;}}}}return workbook;}
HttpServletResponse response = ServletActionContext.getResponse();String name = fileName;try {name = URLEncoder.encode(fileName, "UTF-8");} catch (UnsupportedEncodingException e1) {name = fileName;}response.setContentType("application/vnd.ms-excel;charset=UTF-8");response.setHeader("Content-Disposition", "attachment;filename=" + name);try {HSSFWorkbook workbook = excel.writeBook(excelData);workbook.write(response.getOutputStream());response.getOutputStream().flush();response.getOutputStream().close();} catch (IOException e) {//当浏览器关闭连接,此处response会报错System.out.println("Excel输出异常");}
- [原]java输出Excel
- java输出到excel
- Java忽略转义字符,原格式输出
- java 导入excel 并输出
- java 解析excel并输出
- 【原】excel 表之间做差的java实现
- 编写Java程序输出原矩阵和逆矩阵
- java输出excel文件加密码保护问题
- java输出excel文件加密码保护问题
- java输出excel文件加密码保护问题
- java将数据输出到Excel中
- java输出EXCEL并提供下载 源码
- java程序输出文本到Excel
- java直接输出Excel 页面实现下载
- Java将PDF输出为Excel
- java读取excel表格并格式化输出
- 输出Excel
- excel输出
- Java文件读写数据流大全(InputStream、OutputStream、FileInpuStream)
- Android通讯录查询篇--ContactsContract.Data 二(续)
- STL中用ERASE()方法遍历删除元素
- oracle链接远程数据源
- 分享几道嵌入式c笔试题
- [原]java输出Excel
- enum与int、String之间的转换
- action 中执行js
- c/c++的一些细节
- jquery动态添加表格
- Java修改xml后保存
- setsockop之参数TCP_NODELAY与SO_LINGER
- DevExpress控件之GridControl控件
- 黑马程序员_客户化JSP标签