您的位置:首页 > 编程语言 > Java开发

java用jxl数据库导出excel通用方法

2016-10-21 16:42 423 查看
public class ExportExcelJXL {
/***************************************************************************
* @param fileName
*            EXCEL文件名称
* @param listTitle
*            EXCEL文件第一行列标题集合
* @param listContent
*            EXCEL文件正文数据集合
* @return
*/
public final static String exportExcel(String fileName, String headTitle, String[] Title, List<Object> listContent) {

System.out.println("进入导出环节"+fileName);

System.out.println();

String result = "系统提示:Excel文件导出成功!";
// 以下开始输出到EXCEL
try {
System.out.println("进入try");

// 定义输出流,以便打开保存对话框______________________begin
HttpServletResponse response = ServletActionContext.getResponse();
OutputStream os = response.getOutputStream();// 取得输出流
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("GB2312"), "ISO8859-1"));
// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
// 定义输出流,以便打开保存对话框_______________________end

/** **********创建工作簿************ */
WritableWorkbook workbook = Workbook.createWorkbook(os);

/** **********创建工作表************ */

WritableSheet sheet = workbook.createSheet("Sheet1", 0);

/** **********设置纵横打印(默认为纵打)、打印纸***************** */
jxl.SheetSettings sheetset = sheet.getSettings();
sheetset.setProtected(false);

/** ************设置单元格字体************** */
WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);
WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);

/** ************以下设置三种单元格样式,灵活备用************ */
// 用于标题居中
WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
wcf_center.setWrap(false); // 文字是否换行

// 用于正文居左
WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);
wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐
wcf_left.setWrap(false); // 文字是否换行

/** ***************以下是EXCEL开头大标题,暂时省略********************* */
if (headTitle != null && headTitle.length() == 0) {
sheet.mergeCells(0, 0, 120, 0);
sheet.addCell(new Label(0, 0, headTitle, wcf_center));
}
/** ***************以下是EXCEL第一行列标题********************* */
for (int i = 0; i < Title.length; i++) {
sheet.addCell(new Label(i, 0, Title[i], wcf_center));
}
/** ***************以下是EXCEL正文数据********************* */
Field[] fields = null;
int i = 1;
for (Object obj : listContent) {
fields = obj.getClass().getDeclaredFields();
int j = 0;
for (Field v : fields) {
v.setAccessible(true);
Object va = v.get(obj);
if (va == null) {
va = "";
}
sheet.addCell(new Label(j, i, va.toString(), wcf_left));
j++;
}
i++;
}
/** **********将以上缓存中的内容写到EXCEL文件中******** */
workbook.write();
/** *********关闭文件************* */
workbook.close();

} catch (Exception e) {
result = "系统提示:Excel文件导出失败,原因:" + e.toString();
System.out.println(result);
e.printStackTrace();
}
return result;
}

/**
* 导出excel
*
* @return
*/
public String excelPage() {
ExportExcelJXL excel = new ExportExcelJXL();
String str = "";
//str = new String(StrutsUtils.getRequest().getParameter("wineOrg.orgName").getBytes("iso8859-1"), "UTF-8");
List<Object> li = new ArrayList<Object>();
String[] Title = { "机构ID", "会员编号", "类别", "名称", "省ID", "省名称", "城市ID", "城市名称", "详细地址", "联系人", "性别", "联系手机",
"联系电话", "传真", "邮箱", "QQ", "生日", "积分", "客户等级", "现金账户余额", "结算方式", "客户类型", "购买次数", "购买支数", "创建人ID",
"创建人姓名", "create_time", "del", "STS", "备注", "负责人ID", "负责人姓名", "审核标识", "审核人ID ", "审核人姓名", "审核日期",
"分配人ID", "分配人姓名", "分配日期", "修改人ID", "修改人姓名  ", "修改时间" };
excel.exportExcel("客户资料信息.xls", str, Title, li);
return "";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: