1. 程式人生 > >java使用POI簡單操作excel表格

java使用POI簡單操作excel表格

本文簡單寫記錄java操作excel表格並通過瀏覽器下載,前端程式碼沒有寫。

開發環境

工具環境:eclipse
專案環境:springboot

步驟

1.建立人員entity,包含姓名,年齡,性別

Person.java

public class Person{
	private String name;
	private String age;
	private String sex;
	public Person( String name, String age, String sex ){
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
    public void setName( String name ){
        this.name = name;
    }
    public String getName{
    	return name;
    }
    public void setAge( String age ){
    	this.age = age;
    }
    public String getAge(){
    	return age;
    }
    public void setSex( String sex){
    	this.sex = sex;
    }
    public String getSex(){
    	return sex;
    }
}

2.編寫請求並下載類
DownLoadExcel.java

public class DownLoadExcel{

	@RequestMapping("/a/download")   //訪問地址
	public void download(HttpServletRequest request, HttpServletResponse response ) throws Exception{
		List<Person> list = new ArrayList<Person>();
		list.add(new Person("jimy","23","男"));
		list.add(new Person("tom","24","女"));
		Workbook workbook = new ExportExcelBuilder().createExcel2013()
	        		.addStringColumn(	"name"	, "姓名"	,6000	)
	        		.addStringColumn(	"age"		, "年齡"	,5000	)
	        		.addStringColumn(	"sex"		, "性別"	,12000	)							
					.setSheetName("人員")
					.setData(Person.class,list)
					.build();	
        String titleName = "perosn_data.xlsx";   //儲存的檔名稱
        // 解決中文亂碼問題
        String user_Agent = request.getHeader("User-Agent");  //獲取頭部的User-Agent資訊
        if(user_Agent.contains("Firefox")){ //火狐瀏覽器中文亂碼
        	ExcelUtils.setDownloadForFirefox(workbook, response, titleName);
        }else{// ie瀏覽器中文亂碼
        	ExcelUtils.setDownload(workbook, response, titleName);
           }
	}
   public static void setDownloadForFirefox(Workbook workbook, HttpServletResponse response, String fileName) throws IOException {
    	fileName=base64EncodeFileName(fileName);
    	response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
        response.setContentType("application/vnd.ms-excel");
        try (OutputStream outputStream = response.getOutputStream()) {
            save(workbook, outputStream);
        }
    }
}

注:使用POI需要匯入
由於實際使用的程式碼比較多,沒有貼出實際使用的程式碼。這裡手動敲了個最簡單的程式碼,程式碼並沒有測試。對於POI操作word生成word檔案,後面有時間會記錄到部落格。