文章结尾源码以及jxl包

1、输出excel:

  1. package JmExcel;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.OutputStream;
  7. import java.util.ArrayList;
  8. import java.util.Calendar;
  9. import java.util.HashMap;
  10. import java.util.List;
  11. import java.util.Map;
  12.  
  13. import jxl.Workbook;
  14. import jxl.write.Label;
  15. import jxl.write.WritableCellFormat;
  16. import jxl.write.WritableFont;
  17. import jxl.write.WritableSheet;
  18. import jxl.write.WritableWorkbook;
  19. import jxl.write.WriteException;
  20. import jxl.write.biff.RowsExceededException;
  21.  
  22. public class JavaMakeExcel {
  23. private List list = new ArrayList();
  24.  
  25. public void createQuarterlyExcel(OutputStream os) throws IOException, RowsExceededException, WriteException, InterruptedException{
  26. //创建一个工作薄excel文档
  27. WritableWorkbook workbook = Workbook.createWorkbook(os);
  28. //创建一个表sheet,一个工作薄可以有多个sheet
  29. WritableSheet sheet = workbook.createSheet("季度报", 0);
  30. //设置列宽,行列开始下标均为0
  31. sheet.setColumnView(0, 4);
  32. sheet.setColumnView(1, 10);
  33. sheet.setColumnView(2, 16);
  34. sheet.setColumnView(3, 20);
  35. sheet.setColumnView(4, 8);
  36. sheet.setColumnView(5, 12);
  37. sheet.setColumnView(6, 7);
  38. sheet.setColumnView(7, 12);
  39. sheet.setColumnView(8, 20);
  40. sheet.setColumnView(9, 20);
  41. sheet.setColumnView(10,20);
  42. sheet.setColumnView(11,16);
  43.  
  44. Calendar cal = Calendar.getInstance();
  45. //添加合并单元格,第一个参数是起始列,第二个参数是起始行,第三个参数是终止列,第四个参数是终止行
  46. sheet.mergeCells(0, 0, 1, 0);
  47. //创建一个单元格,第一个参数为开始列,第二个参数为开始行,第三个参数为填充内容,第四个参数(可省略)内容格式
  48. Label fj = new Label(0,0,"附件:");
  49. //在表中添加该单元格
  50. sheet.addCell(fj);
  51. //合并单元格,第一个参数是起始列,第二个参数是起始行,第三个参数是终止列,第四个参数是终止行
  52. sheet.mergeCells(0, 1, 11, 1);
  53. //创建内容样式1:表头样式,设置字体种类和黑体显示,字体为Arial,字号大小为22,加粗
  54. WritableFont bold = new WritableFont(WritableFont.createFont("宋体"),22,WritableFont.BOLD);
  55. WritableCellFormat titleFormate = new WritableCellFormat(bold);//生成一个单元格样式控制对象
  56. titleFormate.setAlignment(jxl.format.Alignment.CENTRE);//单元格中的内容水平方向居中
  57. titleFormate.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//单元格的内容垂直方向居中
  58. //Label(开始列,开始行,labeltitle,格式化);
  59. Label title = new Label(0,1,"**区"+cal.get(cal.YEAR)+"年市委市政府重点工作落实情况表",titleFormate);
  60. //设置行高,.setRowView(行下标,高度值)
  61. sheet.setRowView(1, 700, false);
  62. sheet.addCell(title);
  63.  
  64. //创建内容样式2:表列头样式
  65. WritableFont color = new WritableFont(WritableFont.createFont("宋体"),10,WritableFont.BOLD);
  66. WritableCellFormat colorFormat = new WritableCellFormat(color);
  67. colorFormat.setAlignment(jxl.format.Alignment.CENTRE);
  68. colorFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  69. colorFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
  70. colorFormat.setWrap(true);
  71. //创建内容样式3
  72. WritableFont size = new WritableFont(WritableFont.createFont("宋体"),8,WritableFont.BOLD);
  73. WritableCellFormat colorFormat2 = new WritableCellFormat(size);
  74. colorFormat2.setAlignment(jxl.format.Alignment.CENTRE);
  75. colorFormat2.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  76. colorFormat2.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
  77. colorFormat2.setWrap(true);
  78.  
  79. sheet.setRowView(2, 350, false);
  80. //填充表头
  81. sheet.mergeCells(0, 2, 0, 3);
  82. Label index = new Label(0,2,"序号",colorFormat);
  83. sheet.addCell(index);
  84. sheet.mergeCells(1, 2, 1, 3);
  85. Label leibie = new Label(1,2,"类别",colorFormat);
  86. sheet.addCell(leibie);
  87. sheet.mergeCells(2, 2, 2, 3);
  88. Label aim = new Label(2,2,"区年度具体目标",colorFormat);
  89. sheet.addCell(aim);
  90. Label aim2 = new Label(3,2,"工作目标",colorFormat);
  91. sheet.addCell(aim2);
  92. Label quarter = new Label(3,3,"三季度",colorFormat);
  93. sheet.addCell(quarter);
  94. sheet.mergeCells(4, 2, 4, 3);
  95. Label localHead = new Label(4,2,"区分管领导",colorFormat);
  96. sheet.addCell(localHead);
  97. sheet.mergeCells(5, 2, 5, 3);
  98. Label deptname = new Label(5,2,"牵头单位",colorFormat);
  99. sheet.addCell(deptname);
  100. sheet.mergeCells(6, 2, 6, 3);
  101. Label checker = new Label(6,2,"责任人",colorFormat);
  102. sheet.addCell(checker);
  103. sheet.mergeCells(7, 2, 7, 3);
  104. Label assist = new Label(7,2,"协办单位",colorFormat);
  105. sheet.addCell(assist);
  106. sheet.mergeCells(8, 2, 8, 3);
  107. Label finish = new Label(8,2,"落实情况",colorFormat);
  108. sheet.addCell(finish);
  109. sheet.mergeCells(9, 2, 9, 3);
  110. Label problem = new Label(9,2,"存在问题",colorFormat);
  111. sheet.addCell(problem);
  112. sheet.mergeCells(10, 2, 10, 3);
  113. Label next = new Label(10,2,"下部措施",colorFormat);
  114. sheet.addCell(next);
  115. sheet.mergeCells(11, 2, 11, 3);
  116. Label waring = new Label(11,2,"完成状态(按计划进行、进度顺利但有延误风险、延误)",colorFormat2);
  117. sheet.addCell(waring);
  118. //创建内容样式4:表正文样式
  119. WritableFont zw = new WritableFont(WritableFont.createFont("宋体"),10);
  120. WritableCellFormat zwFormat = new WritableCellFormat(zw);
  121. zwFormat.setAlignment(jxl.format.Alignment.CENTRE);
  122. zwFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
  123. zwFormat.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
  124. zwFormat.setWrap(true); //换行:正文样式添加自动换行
  125. //遍历输出正文
  126. for (int i = 0; i < list.size(); i++) {
  127. Map m = (Map) list.get(i);
  128. String lbstr = String.valueOf(m.get("lb"));
  129. String year_target = String.valueOf(m.get("year_target"));
  130. String quarterly_target = String.valueOf(m.get("quarterly_target"));
  131. String head_name = String.valueOf(m.get("head_name"));
  132. String person_liable = String.valueOf(m.get("person_liable"));
  133. String main_dept_name = String.valueOf(m.get("main_dept_name"));
  134. String assist_dept_name = String.valueOf(m.get("assist_dept_name"));
  135. String contentes = String.valueOf(m.get("contentes"));
  136. String problem1 = String.valueOf(m.get("problem"));
  137. String nextplan = String.valueOf(m.get("nextplan"));
  138. String waringstr = null;
  139. String struts = String.valueOf(m.get("status"));
  140. struts= (struts.equals("null")) ? "1" : struts;
  141. int waringflag = Integer.parseInt(struts) ;
  142. if (waringflag == 1) {
  143. waringstr = "按计划进行";
  144. }else if (waringflag == 2) {
  145. waringstr = "进度顺利但有延误风险";
  146. }else if (waringflag == 3) {
  147. waringstr = "延误";
  148. }
  149.  
  150. Label index2 = new Label(0,i+4,String.valueOf(i+1),zwFormat);
  151. sheet.addCell(index2);
  152. Label lb = new Label(1,i+4,lbstr,zwFormat);
  153. sheet.addCell(lb);
  154. Label year_targetl = new Label(2,i+4,year_target,zwFormat);
  155. sheet.addCell(year_targetl);
  156. Label quarterly_targetl = new Label(3,i+4,quarterly_target,zwFormat);
  157. sheet.addCell(quarterly_targetl);
  158. Label head_namel = new Label(4,i+4,head_name,zwFormat);
  159. sheet.addCell(head_namel);
  160. Label main_dept_namel = new Label(5,i+4,main_dept_name,zwFormat);
  161. sheet.addCell(main_dept_namel);
  162. Label person_liablel = new Label(6,i+4,person_liable,zwFormat);
  163. sheet.addCell(person_liablel);
  164. Label assist_dept_namel = new Label(7,i+4,assist_dept_name,zwFormat);
  165. sheet.addCell(assist_dept_namel);
  166. Label contentesl = new Label(8,i+4,contentes,zwFormat);
  167. sheet.addCell(contentesl);
  168. Label probleml = new Label(9,i+4,problem1,zwFormat);
  169. sheet.addCell(probleml);
  170. Label nextplanl = new Label(10,i+4,nextplan,zwFormat);
  171. sheet.addCell(nextplanl);
  172. Label waringstrl = new Label(11,i+4,waringstr,zwFormat);
  173. sheet.addCell(waringstrl);
  174. }
  175.  
  176. workbook.write();
  177. workbook.close();
  178. os.close();
  179. }
  180.  
  181. public static void main(String[] args) throws RowsExceededException, WriteException, IOException {
  182. JavaMakeExcel jmXL = new JavaMakeExcel();
  183. Map map = new HashMap();
  184. map.put("lb", "市重点工作");
  185. map.put("year_target", "深入落实贯彻党的十九大会议精神");
  186. map.put("quarterly_target", "新开工和筹建9660套");
  187. map.put("head_name", "ckx");
  188. map.put("person_liable", "戴敏");
  189. map.put("main_dept_name", "区纪委");
  190. map.put("assist_dept_name", "督查室");
  191. map.put("contentes", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111");
  192. map.put("problem", "1111111111111111111111111111111111111111111111111111111111111111111");
  193. map.put("nextplan", "1111111");
  194. map.put("status", "1");
  195.  
  196. Map map2 = new HashMap();
  197. map2.put("lb", "区常委会议定");
  198. map2.put("year_target", "刨路修路挣外快");
  199. map2.put("quarterly_target", "再刨一百公里");
  200. map2.put("head_name", "zrt");
  201. map2.put("person_liable", "任公仆");
  202. map2.put("main_dept_name", "住建局");
  203. map2.put("assist_dept_name", "城管大队");
  204. map2.put("contentes", "222222212222222222222222222222222222222222222222222222222222");
  205. map2.put("problem", "2222222");
  206. map2.put("nextplan", "2222222");
  207. map2.put("status", "2");
  208. //List list = new ArrayList();
  209. jmXL.list.add(map);
  210. jmXL.list.add(map2);
  211. //创建文件保存地址
  212. File file=new File("D:/myeclipseworkpase/我的Java输出Excel.xls");
  213. //新建文件输出流
  214. OutputStream os = new FileOutputStream(file);
  215. try {
  216. jmXL.createQuarterlyExcel(os);
  217. } catch (InterruptedException e) {
  218. System.out.println("输出失败!");
  219. }
  220. }
  221.  
  222. }

2、读取:

  1. package JmExcel;
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import jxl.Cell;
  9. import jxl.Sheet;
  10. import jxl.Workbook;
  11. import jxl.read.biff.BiffException;
  12.  
  13. public class JavaReadExcel{
  14.  
  15. private String filePath;
  16. private List list = new ArrayList();
  17.  
  18. public JavaReadExcel(String filePath){
  19. this.filePath = filePath;
  20. }
  21.  
  22. private List readExcel() throws IOException, BiffException{
  23. //创建输入流
  24. InputStream stream = new FileInputStream(filePath);
  25. //获取Excel文件对象
  26. Workbook rwb = Workbook.getWorkbook(stream);
  27. //获取文件的指定工作表 默认的第一个
  28. Sheet sheet = rwb.getSheet(0);
  29. //行数(表头的目录不需要,从1开始) sheet.getRows()获取excel行数
  30. for(int i=0; i<sheet.getRows(); i++){
  31. //创建一个数组 用来存储每一列的值 sheet.getColumns()获取excel列数
  32. String[] str = new String[sheet.getColumns()];
  33. Cell cell = null;
  34. //列数
  35. for(int j=0; j<sheet.getColumns(); j++){
  36. //获取第i行,第j列的值 sheet.getCell(逐行,逐列)
  37. cell = sheet.getCell(j,i);
  38. str[j] = cell.getContents();
  39. }
  40. //把刚获取的列存入list
  41. list.add(str);
  42. }
  43. return list;
  44. }
  45.  
  46. private void outData(){
  47. for(int i=0;i<list.size();i++){
  48. String[] str = (String[])list.get(i);
  49. for(int j=0;j<str.length;j++){
  50. System.out.print(str[j]+'\t');
  51. }
  52. System.out.println();
  53. }
  54. }
  55.  
  56. public static void main(String args[]) throws BiffException, IOException{
  57. JavaReadExcel excel = new JavaReadExcel("D:/myeclipseworkpase/我的Java输出Excel.xls");
  58. List li = excel.readExcel();
  59. for(int i=0;i<li.size();i++){
  60. String[] str = (String[])li.get(i);
  61. for(int j=0;j<str.length;j++){
  62. System.out.print(str[j]+'\t');
  63. }
  64. System.out.println();
  65. }
  66. }
  67. }

源码:

链接:http://pan.baidu.com/s/1kVL2DWr 密码:h643

java 运用jxl 读取和输出Excel的更多相关文章

  1. Java使用POI读取和写入Excel指南

    Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...

  2. Java使用POI读取和写入Excel指南(转)

    做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0 ...

  3. Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现

    以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中 ...

  4. Java 添加、读取、删除Excel图片

    本文介绍在Java程序中如何添加图片到excel表格,添加图片时可设置图片大小.位置.旋转.超链接.可选文本等,以及如何读取.删除excel表格中已有的图片. 工具:Free Spire.XLS fo ...

  5. Java 添加、读取、删除Excel文本框

    本文介绍通过Java程序添加文本框到Excel的方法,添加文本框时,可以添加文本.设置文本方向.文本对齐方式.设置文本框大小.位置.填充色/填充图片.文本框旋转角度.文本框名称.可选文本.文本框隐藏或 ...

  6. Java通过jxl读取Excel

    package com.hd.all.test.testjava; import java.io.File; import java.io.IOException; import java.util. ...

  7. JAVA利用jxl读取Excel内容

    JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. import java.io.File; import java.io.FileInp ...

  8. Java 用jxl读取excel并保存到数据库(此方法存在局限,仅限本地电脑操作,放在服务器上的项目,需要把文件上传到服务器,详细信息,见我的别的博客)

    项目中涉及到读取excel中的数据,保存到数据库中,用jxl做起来比较简单. 基本的思路: 把excel放到固定盘里,然后前段页面选择文件,把文件的名字传到后台,再利用jxl进行数据读取,把读取到的数 ...

  9. JXL 读取 Excel java中jxl导出数据到excel的例子 上传文件

    2010-10-14 19:17:06 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info 信息: Entferne Dat ...

  10. Java 添加、读取、删除Excel形状

    本文介绍通过java程序在excel中操作形状(图形)的方法,包括: 1. 添加形状(如设置形状类型/位置/大小.形状颜色填充(单色/渐变色/纹理/图片填充).形状显示或隐藏.形状倾斜角度.添加文本到 ...

随机推荐

  1. 《Win10——如何进入高级启动选项》

    Win10--如何进入高级启动选项       第一种方法: 管理员命令提示符输入如下代码,自动重启并进入高级启动选项. shutdown /r /o /f /t 00     第二种方法: 1. 管 ...

  2. 《Java基础——break与continue用法详解》

    Java基础--break与continue用法详解       1. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不 ...

  3. Java中的SPI原理浅谈

    在面向对象的程序设计中,模块之间交互采用接口编程,通常情况下调用方不需要知道被调用方的内部实现细节,因为一旦涉及到了具体实现,如果需要换一种实现就需要修改代码,这违反了程序设计的"开闭原则& ...

  4. BUUCTF Misc 被偷走的文件

    首先下载文件打开 得到一个流量文件 用wireshark打开 打开后 进行分析 看到有ftp流量,于是过滤ftp 看到被偷走的是flag.rar 接下用binwalk进行分离 binwalk -e f ...

  5. Django 创建 APP和目录结构介绍

    一.通过pip安装Django 以windows 系统中使用pip命令安装为例 win+r,调出cmd,运行命令:pip install django自动安装PyPi 提供的最新版本.指定版本,可使用 ...

  6. nginx+uwsgi+flask

    说明:没用虚拟环境 安装nginx,并新建一个conf配置文件,启动nginx # xxx.conf server { listen 80; server_name localhost; locati ...

  7. gitlab备份和恢复

    备份 生产环境下,备份是必需的.需要备份的文件有:配置文件和数据文件. 备份配置文件 配置文件包含密码等敏感信息,不要和数据文件放在一起. sh -c 'umask 0077; tar -cf $(d ...

  8. PAT (Basic Level) Practice 1019 数字黑洞 分数 20

    给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有" ...

  9. 大华海康NVR录像JAVA下载及WEB播放

    近期在处理一个将NVR录像机上的录像下载到服务器并通过浏览器播放的需求. 梳理记录下过程,做个备忘,同时遇到的一些细节问题解决,也供需要的同学参考. 需求比较简单,就是把指定时间段的录像上传到服务器保 ...

  10. 「国产系统」Tubian 0.1,兼容Windows和Android的GNU/Linux系统!

    Tubian 0.42已发布:https://www.cnblogs.com/tubentubentu/p/16745926.html Tubian是我的自用系统整理而成的Linux发行版,基于Deb ...