亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java使用poi導出Excel的方法

2024-07-14 08:42:02
字體:
來源:轉載
供稿:網友

本文實例為大家分享了java使用poi導出Excel的具體代碼,供大家參考,具體內容如下

package hyss.util.common;import java.io.IOException;import java.io.OutputStream;import java.net.URLEncoder;import java.util.ArrayList;import java.util.List;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.HSSFColor;import org.apache.poi.ss.util.CellRangeAddress;/** * Excel導出工具類 * @author ts */public class ExportExcelUtil { //顯示的導出表的標題 private String title; //導出表的列名 private String[] rowName ;  private List<Object[]> dataList = new ArrayList<Object[]>(); // HttpServletResponse response;  //構造方法,傳入要導出的數據 public ExportExcelUtil(String title,String[] rowName,List<Object[]> dataList){  this.dataList = dataList;  this.rowName = rowName;  this.title = title; }    /*  * 導出數據  * */ public void export() throws Exception{  try{   HSSFWorkbook workbook = new HSSFWorkbook();      // 創建工作簿對象   HSSFSheet sheet = workbook.createSheet(title);      // 創建工作表      // 產生表格標題行   HSSFRow rowm = sheet.createRow(0);   HSSFCell cellTiltle = rowm.createCell(0);   rowm.setHeightInPoints(25);           //設置標題行默認行高      //sheet樣式定義【getColumnTopStyle()/getStyle()均為自定義方法 - 在下面 - 可擴展】   HSSFCellStyle columnTitleStyle = this.getTitleTopStyle(workbook);//獲取標題行樣式   HSSFCellStyle columnTopStyle = this.getColumnTopStyle(workbook); //獲取列頭樣式對象   HSSFCellStyle style = this.getStyle(workbook);     //單元格樣式對象      sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, (rowName.length-1)));    cellTiltle.setCellStyle(columnTitleStyle);   cellTiltle.setCellValue(title);      // 定義所需列數   int columnNum = rowName.length;   HSSFRow rowRowName = sheet.createRow(2);    // 在索引2的位置創建行(最頂端的行開始的第二行)   rowRowName.setHeightInPoints(25);       //將列頭設置默認行高   // 將列頭設置到sheet的單元格中   for(int n=0;n<columnNum;n++){    HSSFCell cellRowName = rowRowName.createCell(n);    //創建列頭對應個數的單元格    cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING);    //設置列頭單元格的數據類型    HSSFRichTextString text = new HSSFRichTextString(rowName[n]);    cellRowName.setCellValue(text);         //設置列頭單元格的值    cellRowName.setCellStyle(columnTopStyle);      //設置列頭單元格樣式   }      //將查詢出的數據設置到sheet對應的單元格中   for(int i=0;i<dataList.size();i++){        Object[] obj = dataList.get(i);//遍歷每個對象    HSSFRow row = sheet.createRow(i+3);//創建所需的行數    row.setHeightInPoints(20); //將創建出的行設置默認行高    for(int j=0; j<obj.length; j++){     HSSFCell cell = null; //設置單元格的數據類型     if(j == 0){      cell = row.createCell(j,HSSFCell.CELL_TYPE_NUMERIC);      cell.setCellValue(i+1);      }else{      cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING);      if(!"".equals(obj[j]) && obj[j] != null){       cell.setCellValue(obj[j].toString());      //設置單元格的值      }     }     cell.setCellStyle(style);         //設置單元格樣式    }   }   //讓列寬隨著導出的列長自動適應   for (int colNum = 0; colNum < columnNum; colNum++) {    int columnWidth = sheet.getColumnWidth(colNum) / 256;    for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {     HSSFRow currentRow;     //當前行未被使用過     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);    }   }      if(workbook !=null){    try    {     String fileName = title + DateTime.getSystemDateTime("yyyy-MM-dd") + ".xls";             //因 response已經封裝成工具類所以下面這段代碼注釋掉//     response =ServletActionContext.getResponse();//     response.setContentType("APPLICATION/OCTET-STREAM");//     response.setHeader("Content-Disposition", headStr);//     OutputStream out = response.getOutputStream();          //解決中文亂碼      Struts2Util.getResponse().setCharacterEncoding("UTF-8");     //解決中文亂碼     Struts2Util.getResponse().setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName,"UTF-8"));     //文件下載     Struts2Util.getResponse().setContentType("APPLICATION/OCTET-STREAM");     OutputStream out = Struts2Util.getResponse().getOutputStream();     workbook.write(out);    }    catch (IOException e)    {     e.printStackTrace();    }   }  }catch(Exception e){   e.printStackTrace();  }   }  /*   * 設置標題樣式  */   public HSSFCellStyle getTitleTopStyle(HSSFWorkbook workbook) {      // 設置字體   HSSFFont font = workbook.createFont();   //設置字體大小   font.setFontHeightInPoints((short)24);   //字體加粗   font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   //設置字體名字    font.setFontName("宋體");   //設置樣式;    HSSFCellStyle style = workbook.createCellStyle();   //設置底邊框;    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);   //設置底邊框顏色;    style.setBottomBorderColor(HSSFColor.BLACK.index);   //設置左邊框;    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);   //設置左邊框顏色;    style.setLeftBorderColor(HSSFColor.BLACK.index);   //設置右邊框;    style.setBorderRight(HSSFCellStyle.BORDER_THIN);   //設置右邊框顏色;    style.setRightBorderColor(HSSFColor.BLACK.index);   //設置頂邊框;    style.setBorderTop(HSSFCellStyle.BORDER_THIN);   //設置頂邊框顏色;    style.setTopBorderColor(HSSFColor.BLACK.index);   //在樣式用應用設置的字體;    style.setFont(font);   //設置自動換行;    style.setWrapText(false);   //設置水平對齊的樣式為居中對齊;    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);   //設置垂直對齊的樣式為居中對齊;    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);      return style;     }   /*   * 列頭單元格樣式  */   public HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {      // 設置字體   HSSFFont font = workbook.createFont();   //設置字體大小   font.setFontHeightInPoints((short)11);   //字體加粗   font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   //設置字體名字    font.setFontName("宋體");   //設置樣式;    HSSFCellStyle style = workbook.createCellStyle();   //設置底邊框;    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);   //設置底邊框顏色;    style.setBottomBorderColor(HSSFColor.BLACK.index);   //設置左邊框;    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);   //設置左邊框顏色;    style.setLeftBorderColor(HSSFColor.BLACK.index);   //設置右邊框;    style.setBorderRight(HSSFCellStyle.BORDER_THIN);   //設置右邊框顏色;    style.setRightBorderColor(HSSFColor.BLACK.index);   //設置頂邊框;    style.setBorderTop(HSSFCellStyle.BORDER_THIN);   //設置頂邊框顏色;    style.setTopBorderColor(HSSFColor.BLACK.index);   //在樣式用應用設置的字體;    style.setFont(font);   //設置自動換行;    style.setWrapText(false);   //設置水平對齊的樣式為居中對齊;    style.setAlignment(HSSFCellStyle.ALIGN_CENTER);   //設置垂直對齊的樣式為居中對齊;    style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);      return style;     }    /*   * 列數據信息單元格樣式  */   public HSSFCellStyle getStyle(HSSFWorkbook workbook) {   // 設置字體   HSSFFont font = workbook.createFont();   //設置字體大小   //font.setFontHeightInPoints((short)10);   //字體加粗   //font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);   //設置字體名字    font.setFontName("宋體");   //設置樣式;    HSSFCellStyle style = workbook.createCellStyle();   //設置底邊框;    style.setBorderBottom(HSSFCellStyle.BORDER_THIN);   //設置底邊框顏色;    style.setBottomBorderColor(HSSFColor.BLACK.index);   //設置左邊框;    style.setBorderLeft(HSSFCellStyle.BORDER_THIN);   //設置左邊框顏色;    style.setLeftBorderColor(HSSFColor.BLACK.index);   //設置右邊框;    style.setBorderRight(HSSFCellStyle.BORDER_THIN);   //設置右邊框顏色;    style.setRightBorderColor(HSSFColor.BLACK.index);   //設置頂邊框;    style.setBorderTop(HSSFCellStyle.BORDER_THIN);   //設置頂邊框顏色;    style.setTopBorderColor(HSSFColor.BLACK.index);   //在樣式用應用設置的字體;    style.setFont(font);   //設置自動換行;    style.setWrapText(false);   //設置水平對齊的樣式為居中對齊; //   style.setAlignment(HSSFCellStyle.ALIGN_CENTER);   //設置垂直對齊的樣式為居中對齊; //   style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);         return style;    } }

實現方法

/** 實現方法*/public void exportExcel() throws Exception{  String  String[] rowsName = new String[]{"序號","列頭1","列頭2","列頭3","列頭4","列頭5"};  List<Object[]> dataList = new ArrayList<Object[]>();  Object[] objs = null;  for (int i = 0; i < 10; i++) {   objs = new Object[rowsName.length];   objs[0] = i;   objs[1] = "測試1";   objs[2] = "測試2";   objs[3] = "測試3";   objs[4] = "測試4";   objs[5] = "測試5";   dataList.add(objs);  }  ExportExcelUtil ex = new ExportExcelUtil(title, rowsName, dataList);  ex.export();   }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
秋霞成人午夜鲁丝一区二区三区| 亚洲性生活视频| 精品无人区太爽高潮在线播放| 国产精品中文久久久久久久| 亚洲国产小视频在线观看| 日本精品久久中文字幕佐佐木| xxav国产精品美女主播| 国产成人一区二区三区小说| 欧美电影在线观看网站| 欧美色另类天堂2015| 久久综合伊人77777尤物| 日韩欧美亚洲范冰冰与中字| 国产精品美女无圣光视频| 国产在线拍偷自揄拍精品| 国产成人精品久久二区二区91| 国产精品久久久久高潮| 九九热这里只有在线精品视| 欧美大片va欧美在线播放| 日韩精品免费电影| 国产亚洲精品久久久久久| 福利视频一区二区| 国色天香2019中文字幕在线观看| 国产亚洲美女久久| 亚洲一区免费网站| 91精品国产91| 中文字幕成人在线| 久久成人人人人精品欧| 国产精品wwwwww| 国产精品嫩草影院久久久| 国产欧美日韩最新| 日韩美女中文字幕| 日韩av片免费在线观看| 久久久久久久久久久亚洲| 欧美性受xxxx白人性爽| 亚洲国产小视频在线观看| 日韩一区二区在线视频| 国内精品伊人久久| 精品久久久久久久久久久久| 国产欧美日韩中文| 日韩av在线免费观看一区| 欧美电影免费观看大全| 亚洲图片在区色| 久久久精品一区二区三区| 日韩电影大全免费观看2023年上| 欧美日韩成人在线观看| 久久国产精品亚洲| 久久免费在线观看| 国自在线精品视频| 国产女人18毛片水18精品| 黑人巨大精品欧美一区二区三区| 亚洲国产精品一区二区三区| 亚洲香蕉成人av网站在线观看| 欧美洲成人男女午夜视频| 日本道色综合久久影院| 欧美专区日韩视频| 亚洲欧洲日产国码av系列天堂| 亚洲欧美中文日韩在线v日本| 欧美视频二区36p| 亚洲黄色www| 91成人天堂久久成人| 亚洲精品一区二区三区婷婷月| 草民午夜欧美限制a级福利片| 精品久久久999| 国产97在线观看| 日韩国产精品亚洲а∨天堂免| 亚洲欧美国产一区二区三区| 亚洲第一在线视频| 久久国产精品影片| 69av在线播放| 欧美国产日韩精品| 欧洲成人性视频| 日韩电影在线观看中文字幕| 日本三级久久久| 国产精品中文字幕在线| 欧美中文字幕在线观看| 精品久久久久久久久久久| 欧美综合一区第一页| 国产精品久久久久久久久久久久| 国模私拍一区二区三区| 欧美精品电影免费在线观看| 日韩一区二区在线视频| 成人乱人伦精品视频在线观看| 亚洲欧美制服综合另类| 亚洲国产精品小视频| 亚洲最大福利视频网站| 91精品综合视频| 91牛牛免费视频| 岛国av午夜精品| 欧美中文字幕在线视频| 在线免费观看羞羞视频一区二区| 日韩欧美高清视频| 国产一区二区三区中文| 中文字幕精品久久| 久久91亚洲精品中文字幕奶水| 97在线视频免费观看| 欧美精品videofree1080p| 精品久久久久久久久久| 狠狠色狠狠色综合日日小说| 欧美日韩国产va另类| 亚洲国产精品人久久电影| 亚洲欧美日韩成人| 91精品综合久久久久久五月天| 亚洲人成伊人成综合网久久久| 欧美激情精品久久久久久大尺度| 国产一区二区三区久久精品| 欧美自拍大量在线观看| 国产专区欧美专区| 亚洲免费视频观看| 亚洲国产免费av| 中文字幕少妇一区二区三区| 91精品国产色综合久久不卡98口| 亚洲精品av在线播放| 26uuu亚洲伊人春色| 精品日韩视频在线观看| 亚洲男人天堂网| 亚洲电影av在线| 97国产真实伦对白精彩视频8| 中文国产成人精品久久一| 91av视频在线免费观看| 日韩精品极品视频免费观看| 久久中文字幕一区| 亚洲精品不卡在线| 懂色av影视一区二区三区| 欧洲精品毛片网站| 亚洲网站在线播放| 伊人青青综合网站| 97精品国产97久久久久久| 国产91成人video| 国产精品丝袜白浆摸在线| 日韩国产欧美精品在线| 日韩精品999| 91精品国产综合久久香蕉| 欧美视频13p| 久久精品视频中文字幕| 亚洲成人精品视频在线观看| 国产精品专区第二| 98午夜经典影视| 亚洲字幕在线观看| 国产九九精品视频| 亚洲影院色无极综合| 久久久久久国产| 亚洲精品自产拍| 久久视频在线免费观看| 中文字幕日韩高清| 亚洲日韩欧美视频| 亚洲精品理论电影| 久久乐国产精品| 亚洲国产精品资源| 亚洲国产精品久久久久秋霞不卡| 国产精品美腿一区在线看| 国产一区二中文字幕在线看| www.美女亚洲精品| 久久影院中文字幕| 日韩一区二区在线视频| 国产精品欧美一区二区三区奶水| 一本色道久久综合狠狠躁篇怎么玩| 精品久久久久久久大神国产| 精品国内自产拍在线观看| 欧美激情精品久久久久久黑人| 欧洲s码亚洲m码精品一区| 国产精品爽爽ⅴa在线观看| 97av在线影院| 久久视频在线直播| 久久精品国产欧美亚洲人人爽|