Java POI操作Excle工具类

简介:

用到了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 }
复制代码

 


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5762455.html,如需转载请自行联系原作者

相关文章
|
29天前
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
96 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
1月前
|
Java
Java 些许公共工具类
Java 些许公共工具类
14 1
|
1月前
|
Java Apache
Apache POI java对excel表格进行操作(读、写) 有代码!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
34 0
|
3月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
26 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
3月前
|
Java
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
Java应用结构规范问题之在UnitConvertUtils工具类将千米转换为米的问题如何解决
|
2月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
1201 0
|
4月前
|
存储 Java 索引
Java ArrayList操作指南:如何移除并返回第一个元素
通过上述方法,你可以方便地从Java的 `ArrayList` 中移除并返回第一个元素。这种操作在日常编程中非常常见,是处理列表时的基本技能之一。希望这篇指南能帮助你更好地理解和运用Java的 `ArrayList`。
47 4
|
3月前
|
存储 设计模式 安全
Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类
Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类
50 0
|
4月前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之使用ODPS Tunnel Upload功能时,遇到报错:Java 堆内存不足,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
设计模式 存储 安全
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
61 1
下一篇
无影云桌面