java中对Excel的创建、样式修改
生活随笔
收集整理的這篇文章主要介紹了
java中对Excel的创建、样式修改
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
創(chuàng)建excel文件
public static String createExcel(ArrayList<String> list, ArrayList<ArrayList<String>> DataList, String dateStr) {// 創(chuàng)建一個(gè)excel文件HSSFWorkbook workbook = new HSSFWorkbook();// 創(chuàng)建一個(gè)excel的sheet(表)HSSFSheet sheet = workbook.createSheet();// 創(chuàng)建第一行HSSFRow row0 = sheet.createRow(0);// 設(shè)置首行行高Row row = sheet.getRow(0);row.setHeightInPoints(30);// 創(chuàng)建第一列HSSFCell cellTitle = row0.createCell(0);// 合并單元格CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0, 4 + (list.size() - 5) * 2);// 起始行號(hào),終止行號(hào),// 起始列號(hào),終止列號(hào) sheet.addMergedRegion(cellRangeAddress);int j = 5;for (int i = 0; i < list.size() - 5; i++) {CellRangeAddress cellRangeAddress1 = new CellRangeAddress(1, 1, j + i, j + 1 + i);sheet.addMergedRegion(cellRangeAddress1);j++;}for (int i = 0; i < 5; i++) {CellRangeAddress cellRangeAddress3 = new CellRangeAddress(1, 2, i, i);sheet.addMergedRegion(cellRangeAddress3);}// 給第一個(gè)單元格賦值(標(biāo)題行)cellTitle.setCellValue(dateStr + "考勤簽到記錄表");cellTitle.setCellStyle(getRow0Style(workbook));// 創(chuàng)建第二行(列名行)int t = 1;HSSFRow row1 = sheet.createRow(1);row1.setHeightInPoints(20);for (int i = 0; i < list.size(); i++) {HSSFCell cell1 = null;// 循環(huán)創(chuàng)建第二行各列if (i > 5) {cell1 = row1.createCell(i + t);t++;} else {cell1 = row1.createCell(i);}// 設(shè)置單元格數(shù)據(jù)類型 cell1.setCellType(HSSFCell.CELL_TYPE_STRING);HSSFRichTextString text = null;if (i < list.size()) {text = new HSSFRichTextString(list.get(i));// 給每列賦值// System.out.println(text+"____"+i+"_________"+list.size()); cell1.setCellValue(text);}}// 給單元格添加樣式for (int i = 0; i <= 4 + (list.size() - 5) * 2; i++) {HSSFCell cell = row1.getCell(i);if (cell == null) {cell = row1.createCell(i);cell.setCellValue("");}cell.setCellStyle(getStyle(workbook));}// 創(chuàng)建第三行(早上下午)HSSFRow row3 = sheet.createRow(2);row3.setHeightInPoints(15);for (int i = 5; i <= 4 + (list.size() - 5) * 2; i++) {HSSFCell cell = row3.createCell(i);// 設(shè)置單元格數(shù)據(jù)類型 cell.setCellType(HSSFCell.CELL_TYPE_STRING);if (i % 2 == 1) {cell.setCellValue("早");} else {cell.setCellValue("晚");}}// 給單元格添加樣式for (int i = 0; i <= 4 + (list.size() - 5) * 2; i++) {HSSFCell cell = row3.getCell(i);if (cell == null) {cell = row3.createCell(i);cell.setCellValue("");}cell.setCellStyle(getStyle3(workbook));}// 創(chuàng)建數(shù)據(jù)行for (int k = 0; k < DataList.size(); k++) {HSSFRow row2 = sheet.createRow(3 + k);ArrayList<String> datArr = DataList.get(k);row2.setHeightInPoints(20);for (int i = 0; i < datArr.size(); i++) {// 循環(huán)創(chuàng)建第三行各列HSSFCell cell2 = row2.createCell(i);// 設(shè)置單元格樣式 cell2.setCellStyle(getStyle(workbook));// 給每一列賦值String str = datArr.get(i);cell2.setCellValue(str);}}sheet.autoSizeColumn((short) 0); // 調(diào)整第一列寬度sheet.autoSizeColumn((short) 1); // 調(diào)整第二列寬度sheet.autoSizeColumn((short) 2); // 調(diào)整第三列寬度try { // 創(chuàng)建輸出流File file = new File("C:\\Work\\WeX5_3.8_BSBZB\\model\\UI2\\excel\\" + dateStr + ".xls");// official服務(wù)器path// File file = new// File("F:\\Wex5Project\\WeX5_3.8_1_beiSong\\model\\UI2\\excel\\" + dateStr +// ".xls");//my pathFileOutputStream fileout = new FileOutputStream(file);// 將excel寫入輸出流 workbook.write(fileout);fileout.flush();fileout.close();System.out.println("創(chuàng)建完成!");} catch (Exception e) {e.printStackTrace();}// String fiel = "http://192.168.1.156:8181/x5/UI2/excel/" + dateStr +// ".xls";//my path/*official服務(wù)器path北送*/String fiel = "http://111.198.48.184:8888/x5/UI2/excel/" + dateStr + ".xls";return fiel;}
?
轉(zhuǎn)載于:https://www.cnblogs.com/404code/p/9965221.html
總結(jié)
以上是生活随笔為你收集整理的java中对Excel的创建、样式修改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 死精症影响生育怎么治
- 下一篇: (转)面试必备技能:JDK动态代理给Sp