在開發(fā)中我們經(jīng)常遇到把數(shù)據(jù)導出到Excel中的需求,這里簡單的描述下個人實現(xiàn)方式
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:做網(wǎng)站、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的海東網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
Jakarta POI HSSF API組件
HSSF(用于操作Excel的組件)提供給用戶使用的對象在rg.apache.poi.hssf.usermodel包中,主要部分包括Excel對象,樣式和格式,還有輔助操作。有以下幾種對象:
基本操作步驟
首先,理解一下一個Excel的文件的組織形式,一個Excel文件對應于一個workbook(HSSFWorkbook),一個workbook可以有多個sheet(HSSFSheet)組成,一個sheet是由多個row(HSSFRow)組成,一個row是由多個cell(HSSFCell)組成。
基本操作步驟:
下面來看一個動態(tài)生成Excel文件的例子:
//創(chuàng)建HSSFWorkbook對象
HSSFWorkbook wb = new HSSFWorkbook();
//創(chuàng)建HSSFSheet對象
HSSFSheet sheet = wb.createSheet("sheet0");
//創(chuàng)建HSSFRow對象
HSSFRow row = sheet.createRow(0);
//創(chuàng)建HSSFCell對象
HSSFCell cell=row.createCell(0);
//設置單元格的值
cell.setCellValue("單元格中的中文");
//輸出Excel文件
FileOutputStream output=new FileOutputStream("d:\\workbook.xls");
wkb.write(output);
output.flush();
HSSF讀取文件同樣還是使用這幾個對象,只是把相應的createXXX方法變成了getXXX方法即可??梢娭灰斫饬似渲性?,不管是讀還是寫亦或是特定格式都可以輕松實現(xiàn),正所謂知其然更要知其所以然。
導出表格的工具類:
excelUtil:
package com.zhl.push.Utils;
import com.google.common.base.Strings;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
public class ExcelExportUtil {
//表頭
private String title;
//各個列的表頭
private String[] heardList;
//各個列的元素key值
private String[] heardKey;
//需要填充的數(shù)據(jù)信息
private List
service :
@Override
public void queryProjectInfoBySchemeId(HttpServletResponse response, HttpServletRequest request,
String schemeId, String pushDate) throws IOException {
List maps = pushMonitorDao.queryProjectInfoBySchemeId(schemeId, pushDate);
if(maps!=null && maps.size()>0){
String companyName = pushMonitorDao.queryCompanyNameBySchemeId(schemeId);
String sheetTitle = companyName;
String [] title = new String[]{"城市","項目名字","合同","實際"}; //設置表格表頭字段
String [] properties = new String[]{"city","projectName","ddNum","sjNum"}; // 查詢對應的字段
ExcelExportUtil excelExport2 = new ExcelExportUtil();
excelExport2.setData(maps);
excelExport2.setHeardKey(properties);
excelExport2.setFontSize(14);
excelExport2.setSheetName(sheetTitle);
excelExport2.setTitle(sheetTitle);
excelExport2.setHeardList(title);
excelExport2.exportExport(request, response);
}
}
Excel格式
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress;
/**
* @作者 yan
* @創(chuàng)建日期
* @版本 V1.0
* @描述 Excel 導出通用工具類
*/
public class ExcelUtil {
public static byte[] export(String sheetTitle, String[] title, List
接口類demo:
package com.tjhq.nyb.common.service;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.Workbook;
publicinterfaceExpExcelUtilService{
/**
* 業(yè)務數(shù)據(jù)導出
* @param mapTitle LinkedHashMap 鏈式的Map 表頭與字段對應關系
* @param List> 表格鏈式的數(shù)據(jù)集合,?為實體類
* @param excelStyle 樣式表
* @return生成excel文檔
* @throws Exception 拋出錯誤
*/
public WorkbookexportExcelWriter2007(Map mapTitle,List>list,ExcelStyle excelStyle) throws Exception;
public WorkbookexportExcelWriter2003(Map mapTitle,List>list,ExcelStyle excelStyle) throws Exception;
public WorkbookexportExcelWriter2003_(Map mapTitle,Map> mapLstChry,ExcelStyle excelStyle) throws Exception;
public WorkbookexportExcelWriter2003_Title(Map mapTitle,Map> mapLstChry,ExcelStyle excelStyle) throws Exception;
}
以上就是Java怎么導出Excel的詳細內(nèi)容,更多請關注創(chuàng)新互聯(lián)其它相關文章!
分享名稱:Java導出Excel數(shù)據(jù)的方法
文章URL:
http://weahome.cn/article/jeipdo.html