使用JExcel导出excel文件
package org.aaa.portal.tools; import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map; import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class ExcelUtils {
public static final String COLUMN_KEY="key"; //列的键,对应JSONObject的key
public static final String COLUMN_TEXT="text"; //列头名称
/**
* 把JSONArray存储为Excel
* @param fileName 完整文件路径名称
* @param sheetName sheet 名称
* @param ja JSONArray
* @param columns
* List<Map<String, String>> 按照list Item的顺序生成列
* Map格式:
Map<String,String> column1 =new HashMap<String,String>();
column1.put(ExcelUtils.COLUMN_KEY, "sUserName");
column1.put(ExcelUtils.COLUMN_TEXT, "用户名");
columns.add(column1);
*/
public static boolean exportFromJSONArray(String fileName, String sheetName,JSONArray ja,
List<Map<String, String>> columns) {
boolean isSuccess=true;
WritableWorkbook book;
try {
//确保保存文件目录存在
String filePathStr=fileName.substring(0,fileName.lastIndexOf(File.separatorChar));
File filePath=new File(filePathStr);
if(!filePath.exists()){
filePath.mkdirs();
}
//确保保存文件存在
File file=new File(fileName);
if(!file.exists()){
file.createNewFile();
}
// 在指定地址创建EXCEL表
book = Workbook.createWorkbook(file);
// 设置第一个工作薄的名字
WritableSheet sheet = book.createSheet(sheetName, 0); // 设置列头
for (int i = 0; i < columns.size(); i++) {
// 设置列宽
sheet.setColumnView(i, 20);
// 设置列头样式
// 分别设置表头,表元的格式
WritableFont fontb = new WritableFont(WritableFont.ARIAL, 8,
WritableFont.BOLD, false); // 粗体
WritableCellFormat formatb = new WritableCellFormat(fontb);
formatb.setAlignment(Alignment.CENTRE); // 水平居中
formatb.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直居中
formatb.setBorder(Border.ALL, BorderLineStyle.THIN); // 边框
// 填充列名
Label labelb = new Label(i, 0, columns.get(i).get("text"),
formatb);
sheet.addCell(labelb);
} //设置数据单元格格式
WritableFont fontc = new WritableFont(WritableFont.ARIAL, 8,
WritableFont.NO_BOLD, false);
WritableCellFormat formatc = new WritableCellFormat(fontc);
formatc.setAlignment(Alignment.CENTRE);
formatc.setVerticalAlignment(VerticalAlignment.CENTRE);
formatc.setBorder(Border.ALL, BorderLineStyle.THIN);
// 填充数据
for (int i = 0; i < ja.size(); i++) {
JSONObject jo = ja.getJSONObject(i);
// 按照预设的列顺序填充
for (int j = 0; j < columns.size(); j++) {
String key = columns.get(j).get("key");
Object text = jo.get(key);
// 如果是数字,则按照数字的格式填充
if (text != null && text.toString().matches("\\d+")) {
Number numberc = new Number(j, i+1, Long.parseLong(text.toString()),
formatc);
sheet.addCell(numberc);
} else {
//其余全按文字处理
Label labelb = new Label(j, i+1, text.toString(), formatc);
sheet.addCell(labelb);
}
}
} book.write();
book.close();
} catch (IOException e) {
e.printStackTrace();
isSuccess=false;
} catch (RowsExceededException e) {
e.printStackTrace();
isSuccess=false;
} catch (WriteException e) {
e.printStackTrace();
isSuccess=false;
}
return isSuccess;
}
}
使用JExcel导出excel文件的更多相关文章
- ExtJS Grid导出excel文件
ExtJS Grid导出excel文件, 需下载POI:链接:http://pan.baidu.com/s/1i3lkPhF 密码:rqbg 1.将Grid表格数据连同表格列名传到后台 2.后台导出e ...
- PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...
- jxl导出Excel文件
一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...
- PHP导出excel文件
现在教教你如何导入excel文件: 在我的文件储存里面有一个com文件夹的,将其解压放在ThinkPHP/Library/文件夹里面,然后就是写控制器啦!去调用这个插件: <?php names ...
- 【转】 (C#)利用Aspose.Cells组件导入导出excel文件
Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFi ...
- PHPExcel导出excel文件
今天园子刚开,先来个货顶下,后续园丁qing我会再慢慢种园子的,希望大家多来园子逛逛. PHPExcel导出excel文件,先说下重要的参数要记住的东西 impUser() 导入方法 exportEx ...
- 导出Excel文件
/// <summary> /// 类说明:Assistant /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http ...
- 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法
-----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...
- MSSQL2005 导出excel文件
Title:MSSQL2005 导出excel文件 --2011-01-16 16:01 EXEC master..xp_cmdshell 'bcp "select * from 数据库名 ...
随机推荐
- 2015_WEB页面前端工程师_远程测题_东方蜘蛛_1
请使用HTML+CSS实现如下效果: 1. 使用CSS Sprites,实现如图1效果,素材图片为: icons.png: 2. 使用脚本语言验证邮箱.密码的必填以及邮箱的合法性: 若验证失败,则出现 ...
- iptables 配置需要保存
iptables-save > /root/myiptables 将iptables规则导入到文件/root/myiptablse iptables-restore < /root/myi ...
- [CF Round #295 div2] C. DNA Alignment 【观察与思考0.0】
题目链接:C. DNA Alignment 题目大意就不写了,因为叙述会比较麻烦..还是直接看英文题面吧. 题目分析 经过观察与思考,可以发现,构造的串 T 的每一个字符都与给定串 S 的每一个字符匹 ...
- 介绍一个好用的软件--多个WIN远程连接
MultiDesk v3.162015-03-16 http://www.syvik.com/multidesk/index_chs.htm MultiDesk 是一个选项卡(TAB标签)方式的远程桌 ...
- 学习VI的强文,新工作需要呀
http://www.gentoo.org/doc/zh_cn/vi-guide.xml :set nu//用于给文本加行号的. :set nocompatible //启用 vi 兼容模式,一般是给 ...
- lua中求table长度
关于lua table介绍,看以前的文章http://www.cnblogs.com/youxin/p/3672467.html. 官方文档是这么描述#的: 取长度操作符写作一元操作 #. 字符串的长 ...
- cocos2d-iphone加入芒果广告
cocos2d-iphone加入芒果广告的时候在模拟器上显示不出广告 真机上却可以.提示信息如下: AdsMoGo don't start alternate ADDRESPONSE - ADDING ...
- FILTER优化
explain plan for select a.* from fxqd_list_20131115_new_100 a where (acct_no, oper_no, seqno, trans_ ...
- 【HDOJ】1892 See you~
wa了十次,原来变量名写错.二维树状数组. #include <cstdio> #include <cstring> #define MAXN 1002 int nums[MA ...
- WordPress A Forms插件HTML注入漏洞和跨站请求伪造漏洞
漏洞名称: WordPress A Forms插件HTML注入漏洞和跨站请求伪造漏洞 CNNVD编号: CNNVD-201308-281 发布时间: 2013-08-20 更新时间: 2013-08- ...