本文实例讲述了java实现的导出Excel工具类。分享给大家供大家参考,具体如下:
ExcelExportUtil:
包com.excel; 进口java.io.FileOutputStream; 进口java.io.IOException; 进口java.io.OutputStream; 进口java.util.HashSet; 进口java.util.Map; 进口java.util.Set; 进口java.util.regex.Pattern; 进口jxl.Workbook; 进口jxl.write.Label; 进口jxl.write.Number; 进口jxl.write.NumberFormat; 进口jxl.write.WritableCellFormat; 进口jxl.write.WritableSheet; 进口jxl.write.WritableWorkbook; 进口jxl.write.WriteException; 进口jxl.write.biff.RowsExceededException;/* * *生成excel表格 * * @author * */公开课ExcelExportUtil {/* * *构造器 * */公共ExcelExportUtil () { }/* * *生成具有一定格式excel * * @param sheetName *表名称,默认为sheet1 * @param nf *数字类型的格式如:jxl.write。NumberFormat nf=new * jxl.write.NumberFormat(“# # #”);默认无格式 * @param内容 *二维数组,要生成excel的数据来源 * @param合并项 *每一项的数据格式为0,- 1,0,即:把(0,1)和(0,2)合并——→第1列的第一,二个元素合并 * @param操作系统 * excel输出流 * @param行 *需要水平居中的行,默认居左。以逗号分隔的字符串 * @param坳 *需要水平居中的列,默认居左。以逗号分隔的字符串 */公共空出口(字符串sheetName NumberFormat nf, String[][]的内容, String [] mergeInfo OutputStream os,字符串,字符串坳){ 如果(VerifyUtil。isNullObject(内容、操作系统)| | VerifyUtil.isNull2DArray(内容)){ 返回; }//默认名称 如果(VerifyUtil.isNullObject (sheetName)) { sheetName=" sheet1”; } Set行=this.getInfo(行); Set 关口=this.getInfo (col); WritableWorkbook工作簿=零; 尝试{ 工作簿=Workbook.createWorkbook (os); WritableSheet表=工作簿。createSheet (sheetName 0); for (int i=0;我& lt;content.length;我+ +){ for (int j=0;j & lt;内容[我]. length;j + +) { 如果(内容[我][j]==null) { 内容[我][j]=" "; } 如果(isNumber(内容[我][j]),,! rows.contains(我) ,,! cols.contains (j)){//处理数字 数量数量=零; 如果(VerifyUtil.isNullObject (nf)){//数字无格式 数量=新号码(j,我, Double.valueOf(内容[我][j])); 其他}{//如果有格式,按格式生成 jxl.write。WritableCellFormat wcfn=new jxl.write.WritableCellFormat ( nf); 数量=新号码(j,我, Double.valueOf(内容[我][j]), wcfn); } sheet.addCell(数量); 其他}{//处理非数字 WritableCellFormat格式=new WritableCellFormat (); 如果(rows.contains (i) | | cols.contains (j)) { format.setAlignment (jxl.format.Alignment.CENTRE); 其他}{ format.setAlignment (jxl.format.Alignment.LEFT); } format.setVerticalAlignment (jxl.format.VerticalAlignment.CENTRE); 标签标签=新标签(j,我[我][j],内容格式); sheet.addCell(标签); } } } 这一点。(合并表,mergeInfo); workbook.write (); }捕捉(异常e) { e.printStackTrace (); 最后}{ 尝试{ workbook.close (); os.close (); }捕捉(WriteException e) {//TODO自动生成的catch块 e.printStackTrace (); }捕捉(IOException e) {//TODO自动生成的catch块 e.printStackTrace (); } } }/* * *生成固定格式的excel,表格都为文本,水平居左,垂直居中 * * @param sheetName *表名称,默认为sheet1 * @param内容 *二维数组,要生成excel的数据来源 * @param操作系统 * excel输出流 */公共空间exportFormatExcel (String[][]内容,字符串sheetName, OutputStream os) { 如果(VerifyUtil。isNullObject(内容、操作系统)| | VerifyUtil.isNull2DArray(内容)){ 返回; }//默认名称 如果(VerifyUtil.isNullObject (sheetName)) { sheetName=" sheet1”; } WritableWorkbook工作簿=零; 尝试{ 工作簿=Workbook.createWorkbook (os); WritableSheet表=工作簿。createSheet (sheetName 0); for (int i=0;我& lt;content.length;我+ +){ for (int j=0;j & lt;内容[我]. length;j + +) { 如果(内容[我][j]==null) { 内容[我][j]=" "; } WritableCellFormat格式=new WritableCellFormat (); format.setAlignment (jxl.format.Alignment.LEFT); format.setVerticalAlignment (jxl.format.VerticalAlignment.CENTRE); 标签标签=新标签(j,我[我][j],内容格式); sheet.addCell(标签); } } workbook.write (); }捕捉(异常e) { e.printStackTrace (); 最后}{ 尝试{ workbook.close (); }捕捉(WriteException e) {//TODO自动生成的catch块 e.printStackTrace (); }捕捉(IOException e) {//TODO自动生成的catch块 e.printStackTrace (); } } }/* * *生成固定格式的excel,表格都为文本,水平居左,垂直居中 * * @param sheetName *表名称,默认为sheet1 * @param内容 *地图,要生成excel的数据来源 * @param操作系统 * excel输出流 */公共空间exportFormatExcel (Map java实现的导出Excel工具类实例