日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java POI 导入Excell

發(fā)布時(shí)間:2024/3/13 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java POI 导入Excell 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

##Java POI 導(dǎo)入Excell
導(dǎo)入表格
public String toExcel(HttpServletRequest request, HttpServletResponse response,String phone,String time,String sendListid,Integer type) throws IOException {
Map<String,Object> map=new HashMap<>();
if(time!=null && !"".equals(time)){
String time1=time.substring(0,10);
String time2=time.substring(13,23);
map.put(“time1”,time1);
map.put(“time2”,time2);
}
map.put(“phone”,phone);
map.put(“sendListid”,sendListid);
map.put(“type”,type);
List<Map<String,Object>> frequencyList = frequenceService.findAll(map);
HSSFWorkbook wb = null;

//List<MenuTree> ZorganizeFunctionsList=organizationalFormatService.getOrganizeFunctions(organizationalFormatId);//創(chuàng)建第一行表頭String title="抽獎(jiǎng)列表";//創(chuàng)建第二行表頭String[] title2={"序號(hào)","手機(jī)號(hào)","微信名","openId","金額","訂單編號(hào)","時(shí)間"};//創(chuàng)建Excel工作簿XSSFWorkbook workbook = new XSSFWorkbook();//創(chuàng)建一個(gè)工作表sheetXSSFSheet sheet = workbook.createSheet("sheet0");//設(shè)置單元格寬度sheet.setColumnWidth(1,25*256);sheet.setColumnWidth(2,25*256);sheet.setColumnWidth(3,25*256);sheet.setColumnWidth(4,20*256);sheet.setColumnWidth(5,30*256);sheet.setColumnWidth(6,30*256);//創(chuàng)建第一行XSSFRow row = sheet.createRow(0);XSSFCell cell=row.createCell(0);row.setHeight((short) 400);// 定義單元格為字符串類(lèi)型cell.setCellType(HSSFCell.ENCODING_UTF_16);cell.setCellValue(title);//合并范圍,參數(shù)(起始行號(hào)<int firstRow>,終止行號(hào)<int lastRow>, 起始列號(hào)<int firstCol>,終止列號(hào)<int lastCol>).(從0開(kāi)始算,0代表Excel的第一行/列)CellRangeAddress CellRange=new CellRangeAddress(0,0,0,4);sheet.addMergedRegion(CellRange);XSSFCellStyle cellStyle = workbook.createCellStyle();//指定單元格居中對(duì)齊cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//指定單元格垂直居中對(duì)齊cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//設(shè)置單元格字體XSSFFont font = workbook.createFont();font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);font.setFontName("宋體");font.setFontHeight((short) 400);cellStyle.setFont(font);//指定單元格為cellcell.setCellStyle(cellStyle);//創(chuàng)建第1行XSSFRow row2=sheet.createRow(1);XSSFCell cell2x=null;//插入第二行數(shù)據(jù)for (int i = 0; i < title2.length; i++) {cell2x= row2.createCell(i);cell2x.setCellValue(title2[i]);cell2x.setCellStyle(cellStyle);}int flay=2;for(Map<String,Object> frequency:frequencyList){XSSFRow row3=sheet.createRow(flay);//排行XSSFCell GCell=row3.createCell(0);GCell.setCellValue(flay-1);//手機(jī)XSSFCell ACell=row3.createCell(1);ACell.setCellValue(frequency.get("phone").toString());//微信名稱(chēng)XSSFCell BCell=row3.createCell(2);BCell.setCellValue(frequency.get("weName").toString());//openIdXSSFCell CCell=row3.createCell(3);CCell.setCellValue(frequency.get("openId").toString());//金額XSSFCell DCell=row3.createCell(4);DCell.setCellValue(frequency.get("moneys").toString());//訂單編號(hào)XSSFCell ECell=row3.createCell(5);if (frequency.get("sendListid")!=null){ECell.setCellValue(frequency.get("sendListid").toString());}else {ECell.setCellValue("");}//時(shí)間XSSFCell FCell=row3.createCell(6);FCell.setCellValue(StringUtil.dateToString1((Date) frequency.get("createTime")));XSSFCellStyle cellStyle2 = workbook.createCellStyle();//指定單元格居中對(duì)齊cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);//指定單元格垂直居中對(duì)齊cellStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//指定單元格為ACellFCell.setCellStyle(cellStyle2);ACell.setCellStyle(cellStyle2);BCell.setCellStyle(cellStyle2);CCell.setCellStyle(cellStyle2);DCell.setCellStyle(cellStyle2);ECell.setCellStyle(cellStyle2);FCell.setCellStyle(cellStyle2);GCell.setCellStyle(cellStyle2);flay+=1;}//String pathUrl=request.getSession().getServletContext().getRealPath("");//存放的路徑String path1 = ResourceBundleUtil.getString("system", "fileupload.path");// File oldFile = new File(pathUrl).getParentFile();String fileName2="抽獎(jiǎng)列表";//獲取當(dāng)前系統(tǒng)路徑分隔符//String s=File.separator;//String pathUrl2=pathUrl.substring(0,pathUrl.lastIndexOf(s));String message="file/"+ fileName2 + ".xls";File file=new File(path1,message);try {file.createNewFile();//打開(kāi)文件輸出流FileOutputStream fos = FileUtils.openOutputStream(file);//將workbook寫(xiě)入流workbook.write(fos);fos.flush();fos.close();} catch (IOException e) {e.printStackTrace();}// String fileName=pathUrl2+s+"file"+s+fileName2+".xls";String fileName=path1+"/"+message;String downloadFilename=fileName2+".xls";FileDownLoadUtil.downLoad(response, fileName, downloadFilename);return null;}

2.工具類(lèi)

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;

/**
*

  • 該工具類(lèi)實(shí)現(xiàn)文件的下載,文檔、圖片均可
    @
    /
    public class FileDownLoadUtil {
    /

    • @param response

    • @param fileName 完整文件路徑

    • @param downloadFilename 在下載框默認(rèn)顯示的文件名–中文是沒(méi)有問(wèn)題的,帶后綴名

    • 注意:文件名拼接的時(shí)候注意,不同的系統(tǒng)的斜杠不同,使用File.separator自動(dòng)識(shí)別

    • @throws IOException
      */
      public static void downLoad(HttpServletResponse response,String fileName,String downloadFilename) throws IOException{

      // 對(duì)默認(rèn)下載的文件名編碼。不編碼的結(jié)果就是,在客戶(hù)端下載時(shí)文件名亂碼
      downloadFilename = URLEncoder.encode(downloadFilename, “UTF-8”);

      File file = new File(fileName);
      if (file.exists()) {
      // 寫(xiě)明要下載的文件的大小
      response.setContentLength((int) file.length());
      // 設(shè)置在下載框默認(rèn)顯示的文件名
      response.setHeader(“Content-Disposition”, “attachment;filename=”
      + downloadFilename);
      // 指明response的返回對(duì)象是文件流
      response.setContentType(“application/octet-stream”);
      // 讀出文件到response
      // 這里是先需要把要把文件內(nèi)容先讀到緩沖區(qū)
      // 再把緩沖區(qū)的內(nèi)容寫(xiě)到response的輸出流供用戶(hù)下載
      FileInputStream fileInputStream = new FileInputStream(file);
      BufferedInputStream bufferedInputStream = new BufferedInputStream(
      fileInputStream);
      byte[] b = new byte[bufferedInputStream.available()];
      bufferedInputStream.read(b);
      OutputStream outputStream = response.getOutputStream();
      outputStream.write(b);
      // 人走帶門(mén)
      bufferedInputStream.close();
      outputStream.flush();
      outputStream.close();
      }

    }

}

總結(jié)

以上是生活随笔為你收集整理的Java POI 导入Excell的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。