分类: JAVA2010-05-21 11:55168 人阅读评论(0)收藏举报
先上这个简捷导出的大功臣:
Export2XLS.java
[java] view plaincopyprint?
1.import java.io.File;
2.import java.io.IOException;
3.import java.util.ArrayList;
4.import java.util.List;
5.import jxl.Workbook;
6.import jxl.write.Label;
7.import jxl.write.WritableSheet;
8.import jxl.write.WritableWorkbook;
9.import jxl.write.WriteException;
10. public class Export2XLS {
11. /**
12. * @param fileName 文件名
13. * @param filepath 路径
14. * @param columnHeaders 表头
15. * @param rows 行数据
16. */
17. public String CreateXLS(String fileName, String filepath,
18. List columnHeaders, List> rows) {
19. WritableWorkbook workbook = null;
20. WritableSheet sheet = null;
21. // 创建一个可写入的 excel 文件对象
22. String realPath = filepath + fileName;
23. try {
24. workbook = Workbook.createWorkbook(new File(realPath));
25. } catch (IOException e1) {
26. e1.printStackTrace();
27. }
28. try {
29. sheet = workbook.createSheet("sheet1", 0);
30. // 表头
31. for (int i = 0; i < columnHeaders.size(); i++) {
32. sheet.addCell(new Label(i, 0, columnHeaders.get(i)));
33. }
34. for (int i = 0; i < rows.size(); i++) {
35. List row = rows.get(i);
36. for (int j = 0; j < row.size(); j++) {
37. sheet.addCell(new Label(j, i + 1, row.get(j)));
38. }
39. }
40. // 写入信息
41. // 关闭 excel 表
42.
43. workbook.write();
44. workbook.close();
45. } catch (Exception e) {
46. try {
47. workbook.close();
48. } catch (WriteException e1) {
49. e1.printStackTrace();
50. } catch (IOException e1) {
51. e1.printStackTrace();
52. }
53. }
54. return realPath;
55. }
56. public static void main(String[] args) {
57. String fileName = "testFile.xls";
58. String filepath = "e://";
59. ArrayList columns = new ArrayList();
60. columns.add("01");
61. columns.add("测试列 2");
62. columns.add("测试列 3");
63. ArrayList> rows = new ArrayList>();
64. for (int i = 0; i < 10; i++) {
65. List row = new ArrayList();
66. for (int j = 0; j < 3; j++) {
67. if (j == 0) {
68. row.add("00" + i + j);
69. } else {
70. row.add("单元格" + i + "," + j);
71. }
72.
73. }
74. rows.add(row);
75. }
76. new Export2XLS().CreateXLS(fileName, filepath, columns, rows);
77. // new Export2XLS().append(fileName, filepath, rows);
78. }
79. }
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class Export2XLS {
/**
* @param fileName
* @param filepath 路径
* @param columnHeaders 表头
* @param rows 行数据
*/
public String CreateXLS(String fileName, String filepath,
文件名
List columnHeaders, List> rows) {
要实现导出功能
Action 类 OutBoundTaskAction.java
[java] view plaincopyprint?
1.public String exportOutCallResult(){
2.try {
3.columnNameAry = this.columnNameAry(columnNameStr);
4.String customerTableName =
commonItemManager.getTaskById(taskId).getCustomerTableName(); //要导
出 Excel 的数据所在表名
5.Tools tool = new Tools();
6.SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
7.String filePath = tool.getRootTruePath()+"download/files/";
8.fileName = "外呼结果明细列表";
9.realExportPath =
commonItemManager.exportOutCallResult(taskId,fileName,filePath,customer
TableName, columnNameAry);
10. } catch (RuntimeException e) {
11. LOG.error("外呼结果明细导出异常:" + ExceptionUtils.getMessage(e));
12. }
13. return SUCCESS;
14. }
public String exportOutCallResult(){
try {
columnNameAry = this.columnNameAry(columnNameStr);
String customerTableName = commonItemManager.getTas
Tools tool = new Tools();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM
String filePath = tool.getRootTruePath()+"download/
fileName = "外呼结果明细列表";
realExportPath = commonItemManager.exportOutCallRes
} catch (RuntimeException e) {
LOG.error("外呼结果明细导出异常:" + ExceptionUtils.ge
}
return SUCCESS;
}
Manager 类
@Service("obCommonItemManager")
public class CommonItemManager {
[java] view plaincopyprint?
1.public String setSQLStr(String taskId,String tableName ,String[]
columnNameAry){
2.String sql = "";
3.String str1= " SELECT c.cust_id 客户编号, " +
4."c.姓名 客户姓名, " +
5."c.固定电话 固定电话," +
6."c.移动电话 移动电话, " +
7."c.地址 地址, " +
8."m.phone 呼叫号码," +
9."dic_call.dic_cname 呼叫结果, " +
10. "dic_visit.dic_cname 回访结果," +
11. " DECODE (m.status,'0', '未开始','1', '执行中','2', '结束任务','3', '注销' ) 任务状
态," +
12. "EXEC_WORK_NO 执行工号," +
13. "to_char(CALL_TIME,'yyyy-dd:mm hh24:mi:ss') 执行时间, " +
14. "CUST_OPTION 客户意见 " ;
15. //"c.性别 性别, " +
16. if(columnNameAry.length>0){ //添加动态的列名
17. if(null!=columnNameAry[0]&&!("".equals(columnNameAry[0]))){
18. for (int i =0;i
36. " WHERE m.last_his(+) = d.ID " +
37. " AND m.task_id = "+taskId+
38. ") m " +
39. " WHERE c.cust_id = m.cust_id(+) AND dic_call.dic_id(+) = m.result_call " +
40. " AND dic_visit.dic_id(+) = m.result_visit ";
41. return sql = str1 +str2;
42.
43. }
44.
45. /**
46. * 导出外呼结果明细数据到 Excel 中
47. * @param taskId
48. * @param fileName
49. * @param filePath
50. * @param tableName
51. * @param columnNameAry
52. * @return
53. */
54. public String exportOutCallResult(String taskId, String fileName, String
filePath,String tableName ,String[] columnNameAry){
55. Export2XLS export2XLS = new Export2XLS();
56. String sql = setSQLStr(taskId, tableName , columnNameAry);
57. Integer resultCount = taskDAO.findCountBySql("select count(*) from
("+sql+")");
58. List resultList = taskDAO.findBySql(sql, 0, 50000);
59.
60. List columns = new ArrayList();
61. columns.add("客户编号");
62. columns.add("客户姓名");
63. columns.add("固定电话");
64. columns.add("移动电话");
65. columns.add("地址");
66. columns.add("呼叫号码");
67. columns.add("呼叫结果");
68. columns.add("回访结果");
69. columns.add("任务状态");
70. columns.add("执行工号");
71. columns.add("执行时间");
72. columns.add("客户意见");
73. for(Object obj:columnNameAry){//添加动态列名
74. columns.add(obj.toString());
75. }
76.
77. List
> rows = new ArrayList>();
78. for(Object obj:resultList){
79. try{
80. Object[] rowObj = (Object[])obj;
81. for(int i=0;i row = getRowMain(rowObj);
86. rows.add(row);
87. }catch (Exception e) {
88. e.printStackTrace();
89. }
90. }
91.
92. return export2XLS.CreateXLS(fileName, filePath, columns, rows);
93.
94. }
95.
96. public List getRowMain(Object[] rowObj){
97. List row = new ArrayList();
98. for(int i=0;i