java 操做Excel表格

對於Excel表格的解析、生成,java在 org.apache.poi 包中已經封裝好了,使用比較簡單。前端

解析Excel:

首先將File文件轉成InputStreamjava

InputStream in = file.getInputStream();

而後建立表格對象,若是是2003版本的使用  HSSFWorkbook,2007以上的使用 XSSFWorkbookajax

 HSSFWorkbook workbook = new HSSFWorkbook(in);// 建立對Excel工做薄文件的引用

接下來獲取工做表apache

HSSFSheet sheet = workbook.getSheetAt(0);// 引用第一張工做表

獲取行app

HSSFRow row = sheet.getRow(0);//獲取第一行

獲取單元格spa

HSSFCell cell=row.getCell(0)//獲取第一個單元格

獲取單元格的內容excel

String str=cell.getStringCellValue();//文本
Double money=cell.getNumericCellValue();//數字

能夠這樣封裝一下code

 private static String getStringFormCell(HSSFCell cell) {
        try {
            return cell.getStringCellValue();
        } catch (java.lang.IllegalStateException ex) {
            return String.valueOf(cell.getNumericCellValue());
        }
    }

最後經過遍歷行、列就能實現解析了orm

生成Excel:

生成excel要注意網頁前端用ajax請求不能接收文件流,能夠直接用超連接的方式直接GET調用後臺方法,js的寫法就是對象

window.location.href=XXXXX //請求地址

建立excel

HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
HSSFSheet sheet = hssfWorkbook.createSheet(sheetName);//建立工做表

建立行

HSSFRow row = sheet.createRow(rowIndex);

建立一個單元格的格式(可選)

HSSFCellStyle style = hssfWorkbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 建立一個居中格式

建立一個單元格並設置格式、值

 HSSFCell cell = row.createCell(cellIndex);
 cell.setCellValue(cellValue);
 cell.setCellStyle(style);

最後設置請求參數並輸出文件

response.setContentType("application/msexcel;charset=UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + new String((fileName+ ".xls").getBytes("GBK"), "ISO8859_1"));
OutputStream out = response.getOutputStream();
hssfWorkbook.write(out);
out.flush();
out.close();
相關文章
相關標籤/搜索