Heim  >  Artikel  >  Java  >  Teilen Sie Beispielcode für Java, um die Funktion zum Exportieren von Objektarrays über Excel zu implementieren

Teilen Sie Beispielcode für Java, um die Funktion zum Exportieren von Objektarrays über Excel zu implementieren

黄舟
黄舟Original
2017-03-29 11:05:191575Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Kenntnisse der Java-Funktion zum Exportieren von ObjektenArrays über Excel vorgestellt. Es hat einen sehr guten Referenzwert. Schauen wir es uns mit dem Editor an. 1. Importieren Sie das relevante JAR-Paket:

2. Beginnen Sie mit dem Codieren
  <dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>RELEASE</version>
  </dependency>

1. Wenn die Exportfunktion häufig verwendet wird, können Sie sie in eine Toolklasse umwandeln und den Code umwandeln unten gepostet

//结果返回的是写入的记录数(以下用的是自己业务场景数据)
  public int downLoadToExcel(OutputStream outputStream,List<PaimaiMoneyVO> paimaiMoneyVOList) {
     //文档对象
  HSSFWorkbook wb = new HSSFWorkbook();
  int rowNum = 0;
  Sheet sheet = wb.createSheet("excel的标题");
  Row row0 = sheet.createRow(rowNum++);
    //因为场景不同,titil不同,可以在外面写成数组当参数传进来
  row0.createCell(0).setCellValue("第一列属性名");
  row0.createCell(1).setCellValue("第二列属性名");
  row0.createCell(2).setCellValue("第三列属性名");
  row0.createCell(3).setCellValue("第四列属性名");
  row0.createCell(4).setCellValue("第五列属性名");
  row0.createCell(5).setCellValue("第六列属性名");
     if (paimaiMoneyVOList != null && paimaiMoneyVOList.size() > 0) {
   for (PaimaiMoneyVO paimaiMoneyVO : paimaiMoneyVOList) {
    Row row = sheet.createRow(rowNum++);
    row.createCell(0).setCellValue(paimaiMoneyVO.getPaimaiId());
    row.createCell(1).setCellValue(paimaiMoneyVO.getTitle());
    row.createCell(2).setCellValue(paimaiMoneyVO.getUsername());
    row.createCell(3).setCellValue(paimaiMoneyVO.getMoney()+"元");
    row.createCell(4).setCellValue("升价拍"); 
    row.createCell(5).setCellValue(bidder);
   }
  }
  try {
   wb.write(outputStream);
   LogEnum.LAW_WARE.info("表数据写入到excel表成功,一共写入了"+(rowNum - 1)+"条数据");
   outputStream.close();
  } catch (IOException e) {
   LogEnum.LAW_WARE.error("流关闭异常!", e);
  } finally {
   if (outputStream != null) {
    try {
     outputStream.close();
    } catch (IOException e) {
     LogEnum.LAW_WARE.error("流关闭异常!", e);
    }
   }
  }
  return rowNum - 1;
 }
2. Nachdem die „Tool-Klasse“ geschrieben wurde, beginnen wir mit der Verwendung, wie Sie an den

Funktionsparametern sehen können oben Ja, wir müssen zwei Objekte übergeben. Das eine ist der Ausgabestream OutPutStream, der zum Streamen von Excel an den Browser verwendet wird. Das andere ist das Array von Objekten, die wir verwenden Ich muss exportieren. Okay, ich werde nicht zu viel erklären, schauen Sie sich einfach den Code an. (Die folgende Methode ist in der Ebene Aktion

geschrieben und kann über den Konfigurationszugriff von struts.xml heruntergeladen werden)

3. Erweiterung (detaillierte Toolentwicklung)
public void exportBail(){
  this.fileName = "excel文件名";
  try {
   List<PaimaiMoneyVO> paimaiMoneyVOList = new ArrayList<>();
      //下面是我的业务场景获取对象数组
   if(paimaiMoneySearchParam!=null){
    paimaiMoneySearchParam.setVendorId(WebHelper.getVenderId());
    paimaiMoneySearchParam.setPageSize(Constants.AUCTION_WARE_PAGE_SIZE);
    paimaiMoneySearchParam.setPage(page);
    PaimaiMoneyDto paimaiMoneyDto = auctionWareService1.searchPopPaimaiMoneyList(paimaiMoneySearchParam);
    if(paimaiMoneyDto!=null){
     int count = paimaiMoneyDto.getCount();
     int totalPage = count/ Constants.AUCTION_WARE_PAGE_SIZE + (count% Constants.AUCTION_WARE_PAGE_SIZE > 0?1:0);
     for(int i=1;i<=totalPage;i++){
      paimaiMoneySearchParam.setPage(i);
      PaimaiMoneyDto paimaiMoneyResultResult = auctionWareService1.searchPopPaimaiMoneyList(paimaiMoneySearchParam);
      if(paimaiMoneyResultResult!=null){
       paimaiMoneyVOList.addAll(paimaiMoneyResultResult.getList());
      }
     }
    }
   }
   OutputStream outputStream = response.getOutputStream();
   response.reset();//清空输出流
   //下面是对中文文件名的处理
   response.setCharacterEncoding("UTF-8");//设置相应内容的编码格式
       //解析浏览器
   final String userAgent = request.getHeader("USER-AGENT").toLowerCase();
   if(userAgent.contains("firefox")){ //火狐浏览器
    fileName = new String(fileName.getBytes(), "ISO8859-1");
   }else{
    fileName = URLEncoder.encode(fileName, "UTF-8"); //其他浏览器
          fileName = fileName.Replace("+", "%20"); //encode后替换,解决空格问题(其中%20是空格在UTF-8下的编码 ,如果不这么写,浏览器会用+代替空格)
   }
   response.setHeader("Content-Disposition", "attachment;filename=" +fileName + ".xls");//指定输出文件名
   response.setContentType("application/msexcel");//定义输出类型
   int rouNum = ensurePriceListToExcel(outputStream,paimaiMoneyVOList);
   LogEnum.LAW_WARE.info("【RiseAuctionAction.downLoadEnsurePriceExcel】导出成功,一共更新了{"+rouNum+"}条记录");
  } catch (Exception e) {
   LogEnum.LAW_WARE.error("【RiseAuctionAction.downLoadEnsurePriceExcel】导出失败,error is {}", e);
  }
 }

Wenn Sie der Meinung sind, dass das, was oben geschrieben wurde, zu einfach ist, können Sie weiter unten lesen. Ich habe es zu Ihrer Information in „universelle“ Werkzeugkategorien sortiert.

Das obige ist der detaillierte Inhalt vonTeilen Sie Beispielcode für Java, um die Funktion zum Exportieren von Objektarrays über Excel zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn