话不多说 , : :
Excelutil.java
Paket Pers.kangxu.datautils.utils; impor java.io.file; impor java.io.fileinputstream; impor java.io.fileoutputstream; impor java.io.arraylist. java.util.list; import java.util.map; impor org.apache.poi.hssf.usermodel.hssfcellstyle; impor org.apache.poi.hssf.usermodel.hssffont; impor org.apache.poi.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.hssf.usmont; org.apache.poi.ss.usermodel.cell; impor org.apache.poi.ss.usermodel.cellstyle; impor org.apache.poi.ss.usermodel.cellvalue; import org.apache.poi.ss.usermodel.font; import org.apache.poi.ss.usermodel.font; impor.apache.apache.poi.ss.usermodel.font; impor.apache.apache.poi.ss.usermodel.font; impor.apache.apache.apachel org.apache.poi.ss.usermodel.row; impor org.apache.poi.ss.usermodel.sheet; impor org.apache.poi.ss.usermodel.workbook; impor org.apache.poi.ss.util.cellrangeaddress;/** ** * <b> * excel @cellrangeaddress;/** ** * <b> * * excel @工具aTil @cellRangeaddress;/** ** * <b> <b> * excel @cellrangeaddress;/** ** * <b> <b> * excel * Excelutil { / ** * 导出 excel * @param filepath 文件全路径 * @param sheetname sheet 页名称 * @param sheetIndex 当前 sheet 下表 从 0 开始 * @param FileHeader 头部 * @param datas 内容 * / 创建工作簿 创建工作簿 创建工作簿 创建工作簿 创建工作簿 {{{ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @datexcel (string string Buku kerja WB = HSSFWorkbook baru (); // 创建工作表 Sheet sheet S = WB.CreateSheet (); wb.setsheetname (sheetIndex, sheetname); Baris r = s.createrow (0); Sel C = null; Font font = null; CellStyle stytyeheader = null; CellStyle stylecontent = null; // 粗体 font = wb.createFont (); font.setBoldWeight (hssffont.boldweight_bold); // 设置头样式 styteleheader = wb.createCellstyle (); styereheader.setfont (font); styereheader.setborderbottom (hssfcellstyle.border_thin); // 下边框 styteleheader.setborderleft (hssfcellstyle.border_thin); // 左边框 styteeheader.setbordertop (hssfcellstyle.border_thin); // 上边框 styteeheader.setborderright (hssfcellstyle.border_thin);//右边框loDon (hssfcellstyle.border_thin); WB.CreateCellStyle (); stylecontent.setborderbottom (hssfcellstyle.border_thin); // 下边框 stylecontent.setborderleft (hssfcellstyle.border_thin); // 左边框 stylecontent.setbordertop (hssfcellstyle.border_thin); // 上边框 stylecontent.setdorderright (hssfcellstyle.border_ther) (hssfcellstyle.border_ther) (hssfcellstyle.border_ther) (hssfcellstyle.border_ther) (hssfcellstyle.border_ther) (hssfcellstyle.border_ther) (hssfcellstyle.border_ther) (hssfcellstyle.border_ther); i = 0; i <fileHeader.length;) {c = r.createCell (i); C.SetCellStyle (StyleHeader); C.SetCellValue (FileHeader [i]); i ++; } // 设置内容 for (int rownum = 0; rownum <dATas.size ();) {// 行 row data.size () r = s.createrow (rownum+1); // 创建行 untuk (int cellnum = 0; cellnum <fileHeader.length;) {c = r.createCell (cellnum); C.SetCellValue (Datas.get (rownum) [CellNum]); C.SetCellstyle (Stylecontent); Cellnum ++; } rownum ++; } FileOutputStream out = null; coba {// 创建文件或者文件夹, 将内容写进去 if (fileutil.createFile (file baru (filepath))) {out = fileoutputStream baru (filepath); wb.write (out); }} catch (Exception e) {e.printstacktrace (); } akhirnya {coba {// 关闭流 if (out! = null) {out.flush (); out.close (); }} catch (ioException e) {E.PrintStackTrace (); }}} / ** * 读取 excel 文件内容 * @param filepath * @param sheetIndex * / Daftar statis publik <peta <string, string >> readexcel (string filePath, int sheetIndex) {list <peta, string, >> mapList = new arraylist <peta <string, string >> (); // 头 Daftar <String> Daftar = ArrayList baru <string> (); // int cnt = 0; int idx = 0; coba {inputStream input = new FileInputStream (FilePath); // 建立输入流 Buku kerja WB = null; WB = HSSFWorkbook baru (input); // 获取 sheet 页 sheet sheet = wb.getsheetat (sheetIndex); Iterator <Row> ROWS = Sheet.RowerIterator (); while (rows.hasnext ()) {baris baris = rows.next (); Iterator <cell> sel = row.celliterator (); Peta <string, string> peta = new HashMap <String, String> (); if (cnt == 0) {// 将头放进 daftar 中 while (cells.hasnext ()) {cell cell = cells.next (); if (isContainMergecell (sheet)) {cancelMergecell (sheet); } list.add (getStringCellValue (sel)); } cnt ++; melanjutkan; } else {while (cells.hasnext ()) {cell cell = cells.next (); if (isContainMergecell (sheet)) {cancelMergecell (sheet); } // 区别相同的头 list = listutil.changesameval (daftar); peta.put (list.get (idx ++), getStringCellValue (sel)); }} idx = 0; MapList.Add (peta); } return maplist; } catch (ioException ex) {ex.printstacktrace (); } return null; } / ** * 合并单元格 * @param sheet 当前 sheet 页 * @param firstrow 开始行 * @param lastrow 结束行 * @param firstcol 开始列 * @param lastcol 结束列 * / public static int mergecell (sheet sheet, int firstrow, int lastrow, int firstcol, int lastcol) {if sheet ==; } return sheet.addmergedregion (cellRangeAddress baru (firstrow, lastrow, firstcol, lastcol)); } / ** * 取消合并单元格 * @param sheet * @param idx * / public static void cancelMerGecell (lembar lembar) {int sheetmergecount = sheet.getnummergeregions (); untuk (int idx = 0; idx <sheetmergecount;) {cellRangeAddress range = sheet.getMergeDregion (idx); String val = getMerGecellValue (sheet, range.getFirStrow (), range.getlastrow ()); // 取消合并单元格 sheet.removemergedregion (IDX); untuk (int rownum = range.getFirStrow (); rownum <range.getlastrow ()+1;) {for (int cellnum = range.getFirstcolumn (); cellnum <range.getLastColumn ()+1;) {sheet.getrow (rownum) .getCell (cellnum) .setcell (roNDLVOLE (rownum) .getcell (cellnum) .setcell (cellnum) .setcell (rown) .setcell (cellnum) .setcell (cellnum) .setcell (rown) .getcell (cellnum) .setcell (cellnum) .setcell (cellnum) .setcell (cellnum) .setcell (cellnum) .setcell (cellnum) .setcell (cellnum) .setcell (cellnum). Cellnum ++; } rownum ++; } idx ++; }} / ** * 判断指定单元格是否是合并单元格 * @param sheet 当前 sheet 页 * @param firstrow 开始行 * @param lastrow 结束行 * @param firstcol 开始列 * @param lastcol 结束列 * @return * / public static boolean ismergecell (lembar lembar, int baris, int kolom) {int sheetmergecount =. untuk (int i = 0; i <sheetmergecount;) {cellRangeAddress range = sheet.getMergeDregion (i); int firstcolumn = range.getFirstColumn (); int lastColumn = range.getLastColumn (); int firstrow = range.getFirStrow (); int lastrow = range.getlastrow (); if (row> = firstrow && row <= lastrow) {if (column> = firstColumn && column <= lastColumn) {return true; }} i ++; } return false; } / ** * 判断 Sheet 页中是否含有合并单元格 * @param sheet * @return * / public static boolean isContainMergecell (sheet sheet) {if (sheet == null) {return false; } return sheet.getNummergeRegions ()> 0? Benar: false; } / ** * 获取指定合并单元的值 * @param sheet * @param row * @param kolom * @return * / string statis public getMergecellValue (lembar lembar, baris int, kolom int) {int sheetmergecount = sheet.getnummergeRegions (); untuk (int i = 0; i <sheetmergecount;) {cellRangeAddress range = sheet.getMergeDregion (i); int firstcolumn = range.getFirstColumn (); int lastColumn = range.getLastColumn (); int firstrow = range.getFirStrow (); int lastrow = range.getlastrow (); if (row> = firstrow && row <= lastrow) {if (column> = firstColumn && column <= lastColumn) {row frow = sheet.getrow (firstrow); Sel fcell = frow.getcell (firstColumn); return getstringcellValue (fcell); }} i ++; } return null; } / ** * 获取单元格的值 * @param cell * @return * / string statis public getStringCellValue (sel sel) {string strcell = ""; if (cell == null) mengembalikan strcell; switch (cell.getCellType ()) {case cell.cell_type_string: strcell = cell.getRichStringCellValue (). getString (). trim (); merusak; case cell.cell_type_numeric: strcell = string.valueof (cell.getNumericCellValue ()); merusak; case cell.cell_type_boolean: strcell = string.valueof (cell.getBooleanCellValue ()); merusak; case cell.cell_type_formula: rumusevaluator evaluator = cell.getsheet (). getworkbook (). getCreationHelper (). createFormulaevaluator (); evaluator.evaluateForulacell (sel); CellValue CellValue = Evaluator. Evaluasi (sel); strcell = string.ValueOf (CellValue.GetNumberValue ()); merusak; default: strcell = ""; } return strcell; }}调用方式如下
Excelutilterster.java
package pers.kangxu.datautils.test;import java.util.ArrayList;import java.util.List;import pers.kangxu.datautils.utils.ExcelUtil;public class ExcelUtilTester { public static void main(String[] args) { List<String[]> datas = new ArrayList<String[]>(); datas.add (string baru [] {"狗熊", "母", "250"}); datas.add (string baru [] {"猪粮", "不明", "251"}); //Excelutil.writeexcel("c://users//administrator//desktop//test//test//test.xls","sheet1",0, string baru [] {"姓名", "年龄", "性别"}, data); System.out.println (excelutil.readexcel ("c: //users//administrator//desktop//test//test//test.xls", 0)); }}以上就是本文的全部内容 , 希望本文的内容对大家的学习或者工作能带来一定的帮助 , 同时也希望多多支持武林网!