溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行java Excel操作

發(fā)布時(shí)間:2021-10-19 15:42:08 來源:億速云 閱讀:155 作者:柒染 欄目:大數(shù)據(jù)

如何進(jìn)行java Excel操作,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

1. 寫Excel 

 1.1 引入Excel  的相關(guān)文件

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
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.ss.usermodel.CreationHelper;

 1.2 相關(guān)實(shí)用方法:

 public static void wirteExcel() throws Exception{
    	//創(chuàng)建一個(gè)工作簿 即excel文件,再在該文件中創(chuàng)建一個(gè)sheet
    			HSSFWorkbook wb=new HSSFWorkbook();
    			HSSFSheet sheet=wb.createSheet("第一個(gè)sheet");
    			//在sheet中創(chuàng)建一行
    			HSSFRow row=sheet.createRow(0);
    			
    			//在該行寫入各種類型的數(shù)據(jù)
    			row.createCell(0).setCellValue(true);
    			row.createCell(1).setCellValue("鐘林森");
    			row.createCell(2).setCellValue(23);
    			
    			//設(shè)置保留兩位小數(shù)
    			HSSFCell cell=row.createCell(3);
    		        cell.setCellValue(6000);
    	                HSSFCellStyle cellStyle = wb.createCellStyle();
    	                cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
    	                cell.setCellStyle(cellStyle);
    			
    			//在寫入 日期格式的 數(shù)據(jù)需要進(jìn)行特殊處理(這是一種 簡單的處理方式)
    			CreationHelper createHelper=wb.getCreationHelper();
    			HSSFCellStyle style=wb.createCellStyle();
    			style.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd"));
    			
    			cell=row.createCell(4);
    			cell.setCellValue(new Date());
    			cell.setCellStyle(style);
    			
    			//最后寫回磁盤
    			FileOutputStream out=new FileOutputStream("E:\\excel寫數(shù)據(jù).xls");
    			wb.write(out);
    			out.close();
    			
    			System.out.println("寫完了!");
    }

public static void writeExcelList(List<String> title,String sheetName,
		 String filepath,List<Map<String,Object>> list){
	  // 創(chuàng)建一個(gè)工作簿 即excel 文件,再在該文件中創(chuàng)建一個(gè)sheet
	 	 HSSFWorkbook wb = new HSSFWorkbook();
	     HSSFSheet sheet = wb.createSheet(sheetName);
	     // 表頭生成
         HSSFRow row_0 = sheet.createRow(0);
         for(int j=0;j<title.size();j++){
        	 row_0.createCell(j).setCellValue(title.get(j));
         } 
         // 表中每行得數(shù)據(jù)
        for(int i =0;i<list.size();i++){
        	HSSFRow row = sheet.createRow(i+1);
        	for(int j=0;j<title.size();j++){
   			 Object obj = list.get(i).get(title.get(j));
        	 row.createCell(j).setCellValue(obj.toString());
        	}
        }

	   //最后寫回磁盤
			FileOutputStream out;
			try {
				out = new FileOutputStream("E:\\excel寫數(shù)據(jù).xls");
				wb.write(out);
				out.close();
				System.out.println("寫完了!");
			} catch (Exception e) {
				// TODO Auto-generated catch block
				
				e.printStackTrace();
			}
 }

1.3 測(cè)試:

public static void main(String[] args) throws Exception{
		List<String> title = new ArrayList<String>();
		title.add("price");
		title.add("num");
		title.add("amount");
		List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("price", "12");
		map.put("num", "12");
		map.put("amount", 120);
		list.add(map);
		Map<String,Object> map1 = new HashMap<String,Object>();
		map1.put("price", "11");
		map1.put("num", "11");
		map1.put("amount", 110);
		list.add(map1);
     	writeExcelList(title,"庫存成本","E:\\excel寫數(shù)據(jù).xls",list);
//		wirteExcel();
	}

2.API 查看:

https://poi.apache.org/apidocs/3.17/

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI