用到了jxl.jar和poi.jar

一些基本的操作Excel的操作方法:

  1 import java.io.File;
  2 import java.io.FileInputStream;
  3 import java.io.FileOutputStream;
  4 import java.io.IOException;
  5 import java.io.InputStream;
  6 import java.util.ArrayList;
  7 import java.util.List;
  8
  9 import jxl.Cell;
 10 import jxl.Workbook;
 11
 12 import org.apache.log4j.Logger;
 13 import org.apache.poi.hssf.usermodel.HSSFCell;
 14 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 15 import org.apache.poi.hssf.usermodel.HSSFFont;
 16 import org.apache.poi.hssf.usermodel.HSSFRow;
 17 import org.apache.poi.hssf.usermodel.HSSFSheet;
 18 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 19 import org.apache.poi.hssf.util.HSSFColor;
 20 import org.dom4j.Document;
 21 import org.dom4j.DocumentException;
 22
 23 import com.chinadigitalvideo.hibernate.Provider;
 24 import com.chinadigitalvideo.service.ProviderMgr;
 25 import com.chinadigitalvideo.utils.bean.App_Data;
 26 import com.chinadigitalvideo.xbase.GUID;
 27
 28 public class POIExcelHelper {
 29     public static Logger logger = Logger.getLogger(POIExcelHelper.class);
 30
 31     /**
 32      * 设置表头样式
 33      * @param workbook
 34      * @return
 35      */
 36     public static HSSFCellStyle getTitleStyle(HSSFWorkbook workbook) {
 37         HSSFFont font = workbook.createFont();
 38         font.setColor(HSSFColor.BLUE.index);
 39         font.setFontHeight((short) 200);
 40         font.setFontName("楷体_GB2312");
 41         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
 42
 43         HSSFCellStyle style = workbook.createCellStyle();
 44         style.setAlignment(HSSFCellStyle.VERTICAL_CENTER);
 45         style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
 46         style.setFont(font);
 47         style.setFillForegroundColor(HSSFColor.GREY_50_PERCENT.index);
 48         style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
 49         return style;
 50     }
 51
 52     /**
 53      * 设置表格特别数据样式
 54      * @param workbook
 55      * @return
 56      */
 57     public static HSSFCellStyle getDataStyle2(HSSFWorkbook workbook) {
 58         HSSFFont font = workbook.createFont();
 59         font.setColor(HSSFColor.BLACK.index);
 60         font.setFontHeight((short) 200);
 61         font.setFontName("楷体_GB2312");
 62
 63         HSSFCellStyle style = workbook.createCellStyle();
 64         style.setAlignment(HSSFCellStyle.VERTICAL_CENTER);
 65         style.setAlignment(HSSFCellStyle.ALIGN_LEFT);
 66         style.setFont(font);
 67         style.setFillForegroundColor(HSSFColor.GREY_40_PERCENT.index);
 68         style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
 69         return style;
 70     }
 71
 72     /**
 73      * 创建单元格内容
 74      * @param row
 75      * @param id
 76      * @param value
 77      * @param style
 78      */
 79     @SuppressWarnings("deprecation")
 80     public static void createCell(HSSFRow row, int id, String value, HSSFCellStyle style) {
 81         HSSFCell cell = row.createCell((short) id);
 82         cell.setCellType(HSSFCell.CELL_TYPE_STRING);
 83         cell.setCellValue(value);
 84         if (style != null) {
 85             cell.setCellStyle(style);
 86         }
 87     }
 88
 89     /**
 90      * 创建报表文件
 91      * @param workbook
 92      * @param dir
 93      * @param filename
 94      * @throws IOException
 95      */
 96     public static void createFile(HSSFWorkbook workbook, String dir, String filename)
 97             throws IOException {
 98         dir = dir == null ? "" : dir.trim();
 99         if( !"".equals(dir) ){
100             if( !dir.endsWith(File.separator) ){
101                 dir += File.separator ;
102             }
103         }
104         logger.debug("out put dir: " + dir);
105         File outdir = new File(dir);
106         if (!outdir.exists()) {
107             outdir.mkdirs();
108         }
109         FileOutputStream fOut = new FileOutputStream(dir + filename);
110         workbook.write(fOut);
111         fOut.flush();
112         fOut.close();
113         logger.info(dir + filename + "已经生成!");
114     }
115
116     /**
117      * 读取Excel中所有的列
118      * @param filename
119      * @return
120      * @throws IOException
121      */
122     private static List<Cell[]> jxlGetExcelColumns(String filename) throws IOException {
123         InputStream is = null;
124         jxl.Workbook rwb = null;
125         List<Cell[]> list = new ArrayList<Cell[]>();
126         try {
127             is = new FileInputStream(filename);
128             rwb = Workbook.getWorkbook(is);
129             // Sheet[] sheets = rwb.getSheets();
130             // int sheetLen = sheets.length;
131             jxl.Sheet rs = rwb.getSheet(0); // 读取第一个工作表的数据
132
133             //getRows() 获取总共多少列...getColumn(n)获取第n列...
134             for(int i=0; i<rs.getColumns(); i++ ){
135                 list.add(rs.getColumn(i));
136             }
137         } catch (Exception ex) {
138             ex.printStackTrace();
139         } finally {
140             rwb.close();
141             is.close();
142         }
143         return list;
144     }
145
146     /**
147      * 读取Excel中所有的行
148      * @param filename
149      * @return
150      */
151     private static List<Cell[]> jxlGetExcelRows(String filename) {
152         InputStream is = null;
153         jxl.Workbook rwb = null;
154         List<Cell[]> list = new ArrayList<Cell[]>();
155         try {
156             is = new FileInputStream(filename);
157             rwb = Workbook.getWorkbook(is);
158             // Sheet[] sheets = rwb.getSheets();
159             // int sheetLen = sheets.length;
160             jxl.Sheet rs = rwb.getSheet(0); // 默认先读取第一个工作表的数据
161
162             //getRows() 获取总共多少行...getRow(n)获取第n行...
163             for(int i=0; i<rs.getRows(); i++ ){
164                 list.add(rs.getRow(i));
165             }
166         } catch (Exception ex) {
167             ex.printStackTrace();
168         } finally {
169             rwb.close();
170             try {
171                 is.close();
172             } catch (IOException e) {
173                 e.printStackTrace();
174             }
175         }
176         return list;
177     }
178 }

转载于:https://www.cnblogs.com/DreamDrive/p/5762455.html

Java POI操作Excle工具类相关推荐

  1. 自己封装的poi操作Excel工具类

    在上一篇文章<使用poi读写Excel>中分享了一下poi操作Excel的简单示例,这次要分享一下我封装的一个Excel操作的工具类. 该工具类主要完成的功能是:读取Excel.汇总Exc ...

  2. java中文件操作的工具类

    代码: package com.lky.pojo;import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

  3. 操作Excel工具类:ExcelUtils.java

    项目中,时常会需要导入导出Excel的需求,因此我专门花时间设计了工具类. 所需依赖 <!-- 处理xls或xlsx格式的Excel表格导入导出的依赖 --><dependency& ...

  4. java操作svn工具类

    依赖包 <dependency><groupId>org.tmatesoft.svnkit</groupId><artifactId>svnkit< ...

  5. java 操作IP工具类(子网、地址等)

    分享一个操作IP工具类,包含:格式校验,二进制IP互相转换,网段转换,获取网段内IP,校验IP冲突等等 package com.algoblu.pts.boss.basic.utils.ipOpera ...

  6. java poi 操作word遇到的问题

    java poi 操作word文本,图表,遇到的问题 直接上问题 模板字段匹配问题 图表问题 图表导出 问题:模板找不到对应图表 问题:数据填充后效果不达目标 图表中为零的数值去掉(!!!模板层面解决 ...

  7. java Excel导入导出工具类 及使用demo

    java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...

  8. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  9. JAVA I/O流工具类TextFile

    JAVA I/O流工具类TextFile由广州疯狂软件java培训分享: 本文是一个TextFile类,通过这个类我们可以调用其中的方法来简化对文件的读写,这段代码的可用性比较强.这个TextFile ...

最新文章

  1. Metadata Service 架构详解 - 每天5分钟玩转 OpenStack(165)
  2. 模型(Model)– ASP.NET MVC 4 系列
  3. OCH\OMS\OTS\MSP\RS\SPI解释
  4. 使用Introspector(Java内省机制)实现Map转换为JavaBean
  5. mysql workbench 6.2_如何在MySQL Workbench 6.2查询中运行.sql文件?
  6. [转载] Numpy学习之矩阵、函数、二元运算及数组读写
  7. 传智2018python15期_2018年传智播客黑马python+人工智能15期
  8. Java IO基础详解
  9. 银行卡三要素/三元素检测API,银行卡实名认证接口文档
  10. 大数据在人力资源管理当中的应用
  11. [Introduction to programming in Java 笔记] 1.3.8 Gambler's ruin simulation 赌徒破产模拟
  12. web全栈工程师技能介绍
  13. 计算机键盘如何打字课件,教您如何熟悉键盘(打字指法)_计算机的基本知识_IT /计算机_信息...
  14. HTML 基础教程:HTML 编辑器
  15. python常见函数sort()对列表元素进行排序
  16. 读《深陷平庸的SaaS如何自救?》有感
  17. ubuntu1804系统设置在哪里_ubuntu1804安装后设置
  18. 记录一个srcML和javalang等工具做tokenization不一致的地方
  19. Android安卓麻将识别源码Demo( 三)
  20. 微信小程序家庭记账本开发进度七

热门文章

  1. nodeJs多线程 -- 学习记录
  2. java 工厂的变形模拟的各种应用
  3. luogu P1064 金明的预算方案
  4. bzoj 1016: [JSOI2008]最小生成树计数【dfs+克鲁斯卡尔】
  5. python优雅写法
  6. mongoose多条件模糊查询实例
  7. [HDOJ2845]Beans(dp)
  8. 高放的python学习笔记之基本语法
  9. 兼容PC和手机触摸代码
  10. cookies的详细使用说明