原!操作 excel 03/07
生活随笔
收集整理的這篇文章主要介紹了
原!操作 excel 03/07
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
參考 所用jar包:
/** Project: fusion-may-open-fusion-base* * File Created at 2018年4月28日* * Copyright 2016 CMCC Corporation Limited.* All rights reserved.** This software is the confidential and proprietary information of* ZYHY Company. ("Confidential Information"). You shall not* disclose such Confidential Information and shall use it only in* accordance with the terms of the license.*/ package com.cmcc.open.ss.util;import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddress; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import com.cmcc.open.framework.utils.TimeUtil;/*** @Type ExcelHelper.java* @Desc 支持excel 03/07版本* @author xxx* @date 2018年4月28日 上午11:20:49* @version */ public class ExcelHelper {/*** 讀取excel文件內(nèi)容(適合 第一行為大標(biāo)題,第二行是列名行)* @param f* @return */public static List<List<Map<String, String>>> readExcelContent(File f, String fileName) {String fileType = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());InputStream is = null;Workbook wb = null;List<List<Map<String, String>>> result = new ArrayList<List<Map<String, String>>>();//對應(yīng)excel文件 try {is = new FileInputStream(f.getAbsoluteFile());if (fileType.equals("xls")) {wb = new HSSFWorkbook(is);} else if (fileType.equals("xlsx")) {wb = new XSSFWorkbook(f.getAbsoluteFile());}int sheetSize = wb.getNumberOfSheets();for (int i = 0; i < sheetSize; i++) {//遍歷sheet頁 Sheet sheet = wb.getSheetAt(i);List<Map<String, String>> sheetList = new ArrayList<Map<String, String>>();//對應(yīng)sheet頁 List<String> titles = new ArrayList<String>();//放置所有的標(biāo)題 int rowSize = sheet.getLastRowNum() + 1;for (int j = 0; j < rowSize; j++) {//遍歷行 Row row = sheet.getRow(j);if (row == null) {//略過空行 continue;}if (j == 0) {continue;//第一行 大標(biāo)題}int cellSize = row.getLastCellNum();//行中有多少個單元格,也就是有多少列 if (j == 1) {//第二行 標(biāo)題行 (列名行)for (int k = 0; k < cellSize; k++) {Cell cell = row.getCell(k);titles.add(cell.toString());}} else {//其他行是數(shù)據(jù)行 Map<String, String> rowMap = new HashMap<String, String>();//對應(yīng)一個數(shù)據(jù)行 for (int k = 0; k < titles.size(); k++) {Cell cell = row.getCell(k);String key = titles.get(k).trim();String value = null;if (cell != null) {int cellType = cell.getCellType();switch (cellType) {case Cell.CELL_TYPE_STRING: // 文本 value = cell.getRichStringCellValue().getString().trim();break;case Cell.CELL_TYPE_NUMERIC: // 數(shù)字、日期 if (DateUtil.isCellDateFormatted(cell)) {value = TimeUtil.getFormatDateTime(cell.getDateCellValue(),TimeUtil.TIME_FORMAT2_24);} else {cell.setCellType(Cell.CELL_TYPE_STRING);value = String.valueOf(cell.getRichStringCellValue().getString().trim());}break;case Cell.CELL_TYPE_BOOLEAN: // 布爾型 value = String.valueOf(cell.getBooleanCellValue());break;case Cell.CELL_TYPE_BLANK: // 空白 value = "";// value = cell.getStringCellValue();break;case Cell.CELL_TYPE_ERROR: // 錯誤 value = "錯誤#";break;case Cell.CELL_TYPE_FORMULA: // 公式 // 得到對應(yīng)單元格的公式 //cellValue = cell.getCellFormula() + "#"; // 得到對應(yīng)單元格的字符串 cell.setCellType(Cell.CELL_TYPE_STRING);value = String.valueOf(cell.getRichStringCellValue().getString());break;default:value = "#";}// value = cell.toString().trim();}rowMap.put(key, value);}sheetList.add(rowMap);}}result.add(sheetList);}} catch (Exception e) {e.printStackTrace();} finally {try {if (wb != null) {wb.close();}if (is != null) {is.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** * @param title 第一行 例如:碼號模板xxx* @param header 標(biāo)題行* @param list 數(shù)據(jù)集合*/public static HSSFWorkbook writeExcel(String title, String[] header, List<String[]> dataList) {HSSFWorkbook workbook = new HSSFWorkbook(); // 創(chuàng)建工作簿對象try {HSSFSheet sheet = workbook.createSheet("Sheet1"); // 創(chuàng)建工作表// 產(chǎn)生表格標(biāo)題行HSSFRow rowm = sheet.createRow(0);HSSFCell bigTitle = rowm.createCell(0);//sheet樣式定義【getColumnTopStyle()/getStyle()均為自定義方法 - 在下面 - 可擴(kuò)展】HSSFCellStyle columnTopStyle = getColumnTopStyle(workbook);//獲取列頭樣式對象HSSFCellStyle style = getStyle(workbook); //單元格樣式對象sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, (header.length - 1)));bigTitle.setCellStyle(columnTopStyle);bigTitle.setCellValue(title);// 定義所需列數(shù)int columnNum = header.length;HSSFRow rowRowName = sheet.createRow(1); // 在索引1的位置創(chuàng)建行(最頂端的行開始的第二行)// 將列頭設(shè)置到sheet的單元格中for (int n = 0; n < columnNum; n++) {HSSFCell cellRowName = rowRowName.createCell(n); //創(chuàng)建列頭對應(yīng)個數(shù)的單元格cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); //設(shè)置列頭單元格的數(shù)據(jù)類型HSSFRichTextString text = new HSSFRichTextString(header[n]);cellRowName.setCellValue(text); //設(shè)置列頭單元格的值// cellRowName.setCellStyle(columnTopStyle); //設(shè)置列頭單元格樣式cellRowName.setCellStyle(style); //設(shè)置列頭單元格樣式sheet.setColumnWidth(n, 18 * 256); //設(shè)置列寬}//將查詢出的數(shù)據(jù)設(shè)置到sheet對應(yīng)的單元格中for (int i = 0; i < dataList.size(); i++) {String[] strArr = dataList.get(i);//遍歷每個對象HSSFRow row = sheet.createRow(i + 2);//創(chuàng)建所需的行數(shù)HSSFCell numCell = row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC);//序號列numCell.setCellValue(i + 1);numCell.setCellStyle(style); //設(shè)置單元格樣式for (int j = 0; j < strArr.length; j++) {HSSFCell cell = null; //設(shè)置單元格的數(shù)據(jù)類型cell = row.createCell(j + 1, HSSFCell.CELL_TYPE_STRING);if (strArr[j] != null) {cell.setCellValue(strArr[j].toString()); //設(shè)置單元格的值}else{cell.setCellValue(""); //設(shè)置單元格的值}cell.setCellStyle(style); //設(shè)置單元格樣式}}//讓列寬隨著導(dǎo)出的列長自動適應(yīng)/*for (int colNum = 0; colNum < columnNum; colNum++) {int columnWidth = sheet.getColumnWidth(colNum) / 256;for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {HSSFRow currentRow;//當(dāng)前行未被使用過if (sheet.getRow(rowNum) == null) {currentRow = sheet.createRow(rowNum);} else {currentRow = sheet.getRow(rowNum);}if (currentRow.getCell(colNum) != null) {HSSFCell currentCell = currentRow.getCell(colNum);if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) {int length = currentCell.getStringCellValue().getBytes().length;if (columnWidth < length) {columnWidth = length;}}}}if (colNum == 0) {sheet.setColumnWidth(colNum, (columnWidth - 2) * 256);} else {sheet.setColumnWidth(colNum, (columnWidth + 4) * 256);}}*/} catch (Exception e) {e.printStackTrace();}return workbook;}/* * 列頭單元格樣式*/public static HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {// 設(shè)置字體HSSFFont font = workbook.createFont();//設(shè)置字體大小font.setFontHeightInPoints((short) 11);//字體加粗font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//設(shè)置字體名字 font.setFontName("Courier New");//設(shè)置樣式; HSSFCellStyle style = workbook.createCellStyle();//設(shè)置底邊框; style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//設(shè)置底邊框顏色; style.setBottomBorderColor(HSSFColor.BLACK.index);//設(shè)置左邊框; style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//設(shè)置左邊框顏色; style.setLeftBorderColor(HSSFColor.BLACK.index);//設(shè)置右邊框; style.setBorderRight(HSSFCellStyle.BORDER_THIN);//設(shè)置右邊框顏色; style.setRightBorderColor(HSSFColor.BLACK.index);//設(shè)置頂邊框; style.setBorderTop(HSSFCellStyle.BORDER_THIN);//設(shè)置頂邊框顏色; style.setTopBorderColor(HSSFColor.BLACK.index);//在樣式用應(yīng)用設(shè)置的字體; style.setFont(font);//設(shè)置自動換行; style.setWrapText(false);//設(shè)置水平對齊的樣式為居中對齊; style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//設(shè)置垂直對齊的樣式為居中對齊; style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return style;}/* * 列數(shù)據(jù)信息單元格樣式*/public static HSSFCellStyle getStyle(HSSFWorkbook workbook) {// 設(shè)置字體HSSFFont font = workbook.createFont();//設(shè)置字體大小//font.setFontHeightInPoints((short)10);//字體加粗//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//設(shè)置字體名字 font.setFontName("Courier New");//設(shè)置樣式; HSSFCellStyle style = workbook.createCellStyle();//設(shè)置底邊框; style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//設(shè)置底邊框顏色; style.setBottomBorderColor(HSSFColor.BLACK.index);//設(shè)置左邊框; style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//設(shè)置左邊框顏色; style.setLeftBorderColor(HSSFColor.BLACK.index);//設(shè)置右邊框; style.setBorderRight(HSSFCellStyle.BORDER_THIN);//設(shè)置右邊框顏色; style.setRightBorderColor(HSSFColor.BLACK.index);//設(shè)置頂邊框; style.setBorderTop(HSSFCellStyle.BORDER_THIN);//設(shè)置頂邊框顏色; style.setTopBorderColor(HSSFColor.BLACK.index);//在樣式用應(yīng)用設(shè)置的字體; style.setFont(font);//設(shè)置自動換行; style.setWrapText(false);//設(shè)置水平對齊的樣式為居中對齊; style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//設(shè)置垂直對齊的樣式為居中對齊; style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return style;}/*** 輸出excel文件流* @param response* @param fileName* @param workbook*/public static void exportExcel(HttpServletResponse response, String fileName,HSSFWorkbook workbook) {OutputStream out = null;try {response.setContentType("application/octet-stream");response.setHeader("Content-disposition ","attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));out = response.getOutputStream();workbook.write(out);out.flush();out.close();} catch (Exception e) {e.printStackTrace();} finally {try {if (out != null) {out.close();}if (workbook != null) {workbook.close();}} catch (Exception e2) {e2.printStackTrace();}}}}
poi-3.11.jar
poi-ooxml-3.11.jar
poi-ooxml-schemas-3.11.jar
/** Project: fusion-may-open-fusion-base* * File Created at 2018年4月28日* * Copyright 2016 CMCC Corporation Limited.* All rights reserved.** This software is the confidential and proprietary information of* ZYHY Company. ("Confidential Information"). You shall not* disclose such Confidential Information and shall use it only in* accordance with the terms of the license.*/ package com.cmcc.open.ss.util;import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import javax.servlet.http.HttpServletResponse;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.CellRangeAddress; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import com.cmcc.open.framework.utils.TimeUtil;/*** @Type ExcelHelper.java* @Desc 支持excel 03/07版本* @author xxx* @date 2018年4月28日 上午11:20:49* @version */ public class ExcelHelper {/*** 讀取excel文件內(nèi)容(適合 第一行為大標(biāo)題,第二行是列名行)* @param f* @return */public static List<List<Map<String, String>>> readExcelContent(File f, String fileName) {String fileType = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());InputStream is = null;Workbook wb = null;List<List<Map<String, String>>> result = new ArrayList<List<Map<String, String>>>();//對應(yīng)excel文件 try {is = new FileInputStream(f.getAbsoluteFile());if (fileType.equals("xls")) {wb = new HSSFWorkbook(is);} else if (fileType.equals("xlsx")) {wb = new XSSFWorkbook(f.getAbsoluteFile());}int sheetSize = wb.getNumberOfSheets();for (int i = 0; i < sheetSize; i++) {//遍歷sheet頁 Sheet sheet = wb.getSheetAt(i);List<Map<String, String>> sheetList = new ArrayList<Map<String, String>>();//對應(yīng)sheet頁 List<String> titles = new ArrayList<String>();//放置所有的標(biāo)題 int rowSize = sheet.getLastRowNum() + 1;for (int j = 0; j < rowSize; j++) {//遍歷行 Row row = sheet.getRow(j);if (row == null) {//略過空行 continue;}if (j == 0) {continue;//第一行 大標(biāo)題}int cellSize = row.getLastCellNum();//行中有多少個單元格,也就是有多少列 if (j == 1) {//第二行 標(biāo)題行 (列名行)for (int k = 0; k < cellSize; k++) {Cell cell = row.getCell(k);titles.add(cell.toString());}} else {//其他行是數(shù)據(jù)行 Map<String, String> rowMap = new HashMap<String, String>();//對應(yīng)一個數(shù)據(jù)行 for (int k = 0; k < titles.size(); k++) {Cell cell = row.getCell(k);String key = titles.get(k).trim();String value = null;if (cell != null) {int cellType = cell.getCellType();switch (cellType) {case Cell.CELL_TYPE_STRING: // 文本 value = cell.getRichStringCellValue().getString().trim();break;case Cell.CELL_TYPE_NUMERIC: // 數(shù)字、日期 if (DateUtil.isCellDateFormatted(cell)) {value = TimeUtil.getFormatDateTime(cell.getDateCellValue(),TimeUtil.TIME_FORMAT2_24);} else {cell.setCellType(Cell.CELL_TYPE_STRING);value = String.valueOf(cell.getRichStringCellValue().getString().trim());}break;case Cell.CELL_TYPE_BOOLEAN: // 布爾型 value = String.valueOf(cell.getBooleanCellValue());break;case Cell.CELL_TYPE_BLANK: // 空白 value = "";// value = cell.getStringCellValue();break;case Cell.CELL_TYPE_ERROR: // 錯誤 value = "錯誤#";break;case Cell.CELL_TYPE_FORMULA: // 公式 // 得到對應(yīng)單元格的公式 //cellValue = cell.getCellFormula() + "#"; // 得到對應(yīng)單元格的字符串 cell.setCellType(Cell.CELL_TYPE_STRING);value = String.valueOf(cell.getRichStringCellValue().getString());break;default:value = "#";}// value = cell.toString().trim();}rowMap.put(key, value);}sheetList.add(rowMap);}}result.add(sheetList);}} catch (Exception e) {e.printStackTrace();} finally {try {if (wb != null) {wb.close();}if (is != null) {is.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/*** * @param title 第一行 例如:碼號模板xxx* @param header 標(biāo)題行* @param list 數(shù)據(jù)集合*/public static HSSFWorkbook writeExcel(String title, String[] header, List<String[]> dataList) {HSSFWorkbook workbook = new HSSFWorkbook(); // 創(chuàng)建工作簿對象try {HSSFSheet sheet = workbook.createSheet("Sheet1"); // 創(chuàng)建工作表// 產(chǎn)生表格標(biāo)題行HSSFRow rowm = sheet.createRow(0);HSSFCell bigTitle = rowm.createCell(0);//sheet樣式定義【getColumnTopStyle()/getStyle()均為自定義方法 - 在下面 - 可擴(kuò)展】HSSFCellStyle columnTopStyle = getColumnTopStyle(workbook);//獲取列頭樣式對象HSSFCellStyle style = getStyle(workbook); //單元格樣式對象sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, (header.length - 1)));bigTitle.setCellStyle(columnTopStyle);bigTitle.setCellValue(title);// 定義所需列數(shù)int columnNum = header.length;HSSFRow rowRowName = sheet.createRow(1); // 在索引1的位置創(chuàng)建行(最頂端的行開始的第二行)// 將列頭設(shè)置到sheet的單元格中for (int n = 0; n < columnNum; n++) {HSSFCell cellRowName = rowRowName.createCell(n); //創(chuàng)建列頭對應(yīng)個數(shù)的單元格cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); //設(shè)置列頭單元格的數(shù)據(jù)類型HSSFRichTextString text = new HSSFRichTextString(header[n]);cellRowName.setCellValue(text); //設(shè)置列頭單元格的值// cellRowName.setCellStyle(columnTopStyle); //設(shè)置列頭單元格樣式cellRowName.setCellStyle(style); //設(shè)置列頭單元格樣式sheet.setColumnWidth(n, 18 * 256); //設(shè)置列寬}//將查詢出的數(shù)據(jù)設(shè)置到sheet對應(yīng)的單元格中for (int i = 0; i < dataList.size(); i++) {String[] strArr = dataList.get(i);//遍歷每個對象HSSFRow row = sheet.createRow(i + 2);//創(chuàng)建所需的行數(shù)HSSFCell numCell = row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC);//序號列numCell.setCellValue(i + 1);numCell.setCellStyle(style); //設(shè)置單元格樣式for (int j = 0; j < strArr.length; j++) {HSSFCell cell = null; //設(shè)置單元格的數(shù)據(jù)類型cell = row.createCell(j + 1, HSSFCell.CELL_TYPE_STRING);if (strArr[j] != null) {cell.setCellValue(strArr[j].toString()); //設(shè)置單元格的值}else{cell.setCellValue(""); //設(shè)置單元格的值}cell.setCellStyle(style); //設(shè)置單元格樣式}}//讓列寬隨著導(dǎo)出的列長自動適應(yīng)/*for (int colNum = 0; colNum < columnNum; colNum++) {int columnWidth = sheet.getColumnWidth(colNum) / 256;for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {HSSFRow currentRow;//當(dāng)前行未被使用過if (sheet.getRow(rowNum) == null) {currentRow = sheet.createRow(rowNum);} else {currentRow = sheet.getRow(rowNum);}if (currentRow.getCell(colNum) != null) {HSSFCell currentCell = currentRow.getCell(colNum);if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) {int length = currentCell.getStringCellValue().getBytes().length;if (columnWidth < length) {columnWidth = length;}}}}if (colNum == 0) {sheet.setColumnWidth(colNum, (columnWidth - 2) * 256);} else {sheet.setColumnWidth(colNum, (columnWidth + 4) * 256);}}*/} catch (Exception e) {e.printStackTrace();}return workbook;}/* * 列頭單元格樣式*/public static HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {// 設(shè)置字體HSSFFont font = workbook.createFont();//設(shè)置字體大小font.setFontHeightInPoints((short) 11);//字體加粗font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//設(shè)置字體名字 font.setFontName("Courier New");//設(shè)置樣式; HSSFCellStyle style = workbook.createCellStyle();//設(shè)置底邊框; style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//設(shè)置底邊框顏色; style.setBottomBorderColor(HSSFColor.BLACK.index);//設(shè)置左邊框; style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//設(shè)置左邊框顏色; style.setLeftBorderColor(HSSFColor.BLACK.index);//設(shè)置右邊框; style.setBorderRight(HSSFCellStyle.BORDER_THIN);//設(shè)置右邊框顏色; style.setRightBorderColor(HSSFColor.BLACK.index);//設(shè)置頂邊框; style.setBorderTop(HSSFCellStyle.BORDER_THIN);//設(shè)置頂邊框顏色; style.setTopBorderColor(HSSFColor.BLACK.index);//在樣式用應(yīng)用設(shè)置的字體; style.setFont(font);//設(shè)置自動換行; style.setWrapText(false);//設(shè)置水平對齊的樣式為居中對齊; style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//設(shè)置垂直對齊的樣式為居中對齊; style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return style;}/* * 列數(shù)據(jù)信息單元格樣式*/public static HSSFCellStyle getStyle(HSSFWorkbook workbook) {// 設(shè)置字體HSSFFont font = workbook.createFont();//設(shè)置字體大小//font.setFontHeightInPoints((short)10);//字體加粗//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//設(shè)置字體名字 font.setFontName("Courier New");//設(shè)置樣式; HSSFCellStyle style = workbook.createCellStyle();//設(shè)置底邊框; style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//設(shè)置底邊框顏色; style.setBottomBorderColor(HSSFColor.BLACK.index);//設(shè)置左邊框; style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//設(shè)置左邊框顏色; style.setLeftBorderColor(HSSFColor.BLACK.index);//設(shè)置右邊框; style.setBorderRight(HSSFCellStyle.BORDER_THIN);//設(shè)置右邊框顏色; style.setRightBorderColor(HSSFColor.BLACK.index);//設(shè)置頂邊框; style.setBorderTop(HSSFCellStyle.BORDER_THIN);//設(shè)置頂邊框顏色; style.setTopBorderColor(HSSFColor.BLACK.index);//在樣式用應(yīng)用設(shè)置的字體; style.setFont(font);//設(shè)置自動換行; style.setWrapText(false);//設(shè)置水平對齊的樣式為居中對齊; style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//設(shè)置垂直對齊的樣式為居中對齊; style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);return style;}/*** 輸出excel文件流* @param response* @param fileName* @param workbook*/public static void exportExcel(HttpServletResponse response, String fileName,HSSFWorkbook workbook) {OutputStream out = null;try {response.setContentType("application/octet-stream");response.setHeader("Content-disposition ","attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));out = response.getOutputStream();workbook.write(out);out.flush();out.close();} catch (Exception e) {e.printStackTrace();} finally {try {if (out != null) {out.close();}if (workbook != null) {workbook.close();}} catch (Exception e2) {e2.printStackTrace();}}}}
轉(zhuǎn)載于:https://www.cnblogs.com/wuyun-blog/p/9024828.html
總結(jié)
以上是生活随笔為你收集整理的原!操作 excel 03/07的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go websocket
- 下一篇: uva 11367 (Dijkstra+