- 浏览: 335407 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
znfsky:
找了好一会,原来要手动加链接库,赞一个
codeblocks处理undefined reference to `pthread_create' -
qiankai86:
Thank you!
java平均分配算法 -
yl419440513:
表名称和列名称中文乱码怎么解决呢
ResultSet 对象getTables()的用法 获取表的相关信息 -
sumaolin:
写的挺详细的啊
html marque元素标签属性的参数说明 -
brown802:
我都加过这个包啦,还是有错误
Unable to find parent packages json-default
http://www.iteye.com/topic/624334
是操作excel的几个类文件
是操作excel的几个类文件
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; /** * 封装对excel的操作,包括本地读写excel和流中输出excel<br/> * 关联jar poi-3.5-beta5-20090219.jar<br/> * 有参构造函数参数为excel的全路径<br/> * @author 沙琪玛 * */ public class ExcelUtils { // excel文件路径 private String path = ""; /** * 无参构造函数 默认 */ public ExcelUtils() { } /** * 有参构造函数 * @param path excel路径 */ public ExcelUtils(String path) { this.path = path; } /** * 在磁盘生成一个含有内容的excel,路径为path属性 * @param sheetName 导出的sheet名称 * @param fieldName 列名数组 * @param data 数据组 * @throws IOException */ public void makeExcel(String sheetName,String[] fieldName,List<String[]> data) throws IOException { //在内存中生成工作薄 HSSFWorkbook workbook = makeWorkBook(sheetName,fieldName,data); //截取文件夹路径 String filePath=path.substring(0,path.lastIndexOf("\\")); // 如果路径不存在,创建路径 File file = new File(filePath); //System.out.println(path+"-----------"+file.exists()); if (!file.exists()) file.mkdirs(); FileOutputStream fileOut = new FileOutputStream(path); workbook.write(fileOut); fileOut.close(); } /** * 在输出流中导出excel * @param excelName 导出的excel名称 包括扩展名 * @param sheetName 导出的sheet名称 * @param fieldName 列名数组 * @param data 数据组 * @param response response */ public void makeStreamExcel(String excelName, String sheetName,String[] fieldName , List<String[]> data,HttpServletResponse response) { OutputStream os = null; try { response.reset(); // 清空输出流 os = response.getOutputStream(); // 取得输出流 response.setHeader("Content-disposition", "attachment; filename=" + new String(excelName.getBytes(), "ISO-8859-1")); // 设定输出文件头 response.setContentType("application/msexcel"); // 定义输出类型 } catch (IOException ex) {// 捕捉异常 System.out.println("流操作错误:" + ex.getMessage()); } //在内存中生成工作薄 HSSFWorkbook workbook = makeWorkBook(sheetName,fieldName,data); try { os.flush(); workbook.write(os); } catch (IOException e) { e.printStackTrace(); System.out.println("Output is closed"); } } /** * 根据条件,生成工作薄对象到内存 * @param sheetName 工作表对象名称 * @param fieldName 首列列名称 * @param data 数据 * @return HSSFWorkbook */ private HSSFWorkbook makeWorkBook(String sheetName,String[] fieldName , List<String[]> data) { // 产生工作薄对象 HSSFWorkbook workbook = new HSSFWorkbook(); // 产生工作表对象 HSSFSheet sheet = workbook.createSheet(); // 为了工作表能支持中文,设置字符集为UTF_16 workbook.setSheetName(0, sheetName); // 产生一行 HSSFRow row = sheet.createRow(0); // 产生单元格 HSSFCell cell; // 写入各个字段的名称 for (int i = 0; i < fieldName.length; i++) { // 创建第一行各个字段名称的单元格 cell = row.createCell((short) i); // 设置单元格内容为字符串型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 为了能在单元格中输入中文,设置字符集为UTF_16 // cell.setEncoding(HSSFCell.ENCODING_UTF_16); // 给单元格内容赋值 cell.setCellValue(new HSSFRichTextString(fieldName[i])); } // 写入各条记录,每条记录对应excel表中的一行 for (int i = 0; i < data.size(); i++) { String[] tmp = data.get(i); // 生成一行 row = sheet.createRow(i + 1); for (int j = 0; j < tmp.length; j++) { cell = row.createCell((short) j); //设置单元格字符类型为String cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue(new HSSFRichTextString((tmp[j] == null) ? "" : tmp[j])); } } return workbook; } public void write(int sheetOrder,int colum, int row, String content) throws Exception { Workbook workbook = new HSSFWorkbook(new POIFSFileSystem( new FileInputStream(path))); Sheet sheet = workbook.getSheetAt(sheetOrder); Row rows = sheet.createRow(row); Cell cell = rows.createCell(colum); cell.setCellValue(content); FileOutputStream fileOut = new FileOutputStream(path); workbook.write(fileOut); fileOut.close(); } /** * 得到一个工作区最后一条记录的序号 * @param sheetOrder 工作区序号 * @return int * @throws IOException */ public int getSheetLastRowNum(int sheetOrder) throws IOException { Workbook workbook = new HSSFWorkbook(new POIFSFileSystem( new FileInputStream(path))); Sheet sheet = workbook.getSheetAt(sheetOrder); return sheet.getLastRowNum(); } public String read(int sheetOrder,int colum, int row) throws Exception { Workbook workbook = new HSSFWorkbook(new POIFSFileSystem( new FileInputStream(path))); Sheet sheet = workbook.getSheetAt(sheetOrder); Row rows = sheet.getRow(row); Cell cell = rows.getCell(colum); String content = cell.getStringCellValue(); return content; } /** * 根据path属性,在磁盘生成一个新的excel * @throws IOException */ public void makeEmptyExcel() throws IOException { Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("new sheet"); //截取文件夹路径 String filePath=path.substring(0,path.lastIndexOf("\\")); // 如果路径不存在,创建路径 File file = new File(filePath); if (!file.exists()) file.mkdirs(); FileOutputStream fileOut = new FileOutputStream(filePath + "\\" + path.substring(path.lastIndexOf("\\")+1)); wb.write(fileOut); fileOut.close(); } /** * 根据工作区序号,读取该工作去下的所有记录,每一条记录是一个String[]<br/> * 注意如果单元格中的数据为数字将会被自动转换为字符串<br/> * 如果单元格中存在除数字,字符串以外的其他类型数据,将会产生错误 * @param sheetOrder 工作区序号 * @return * @throws IOException * @throws */ public List<String[]> getDataFromSheet(int sheetOrder) throws IOException { Workbook workbook = new HSSFWorkbook(new POIFSFileSystem( new FileInputStream(path))); Sheet sheet = workbook.getSheetAt(sheetOrder); List<String[]> strs=new ArrayList<String[]>(); //注意得到的行数是基于0的索引 遍历所有的行 //System.out.println(sheet.getLastRowNum()); for(int i=0 ; i<=sheet.getLastRowNum() ; i++){ Row rows = sheet.getRow(i); String[] str =new String[rows.getLastCellNum()]; //遍历每一列 for (int k = 0; k < rows.getLastCellNum(); k++) { Cell cell = rows.getCell(k); //数字类型时 if(0==cell.getCellType()){ //用于格式化数字,只保留数字的整数部分 DecimalFormat df=new DecimalFormat("########"); str[k]=df.format(cell.getNumericCellValue()); } else str[k] =cell.getStringCellValue(); //System.out.println(cell.getCellType()+"-------------"+str[k]); } strs.add(str); } return strs ; } // public static void main(String[] args) throws Exception { // ExcelUtils eu=new ExcelUtils("D:\\Tomcat 5.5\\webapps\\sms\\UserFiles\\log\\2009-11-16 16:47:20 导入手机号码日志.xls"); // List<String[]> ss=new ArrayList<String[]>(); // ss.add(new String[]{"你撒地方","sdfds"}); // ss.add(new String[]{"瓦尔","撒地方"}); // eu.makeExcel("smsLog", new String[]{"色粉","的是否"}, ss); // List<String[]> strs=excelUtils.getDataFromSheet(0); // for (String[] str : strs) { // for (String s : str) { // System.out.println(s); // } // } // String content = "Hello Worlds"; // excelUtils.write(2, 3, content); // String newContent = excelUtils.read(0,1, 1); // System.out.println(newContent); // excelUtils.makeEmptyExcel("d:\\a\\ab", "a.xls"); // } }
发表评论
-
auto-comet服务器端向客户端的自动发送
2011-10-10 11:06 2036介绍一个服务器端自动 ... -
关于错误oracle.jdbc.OracleDriver的解决
2010-07-20 09:26 3057在使用tomcat6发布程序时总是出现错误 java.lan ... -
Netty框架
2010-06-25 14:15 3163Netty提供异步的、事件 ... -
敏捷模型2
2010-06-01 13:26 935在一个真正的迭代开发 ... -
如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)
2010-06-01 11:56 3325如何用Powerdesigner的PDM(物理数据模型)生成数 ... -
木匠与总管,一则项目管理的小故事
2010-06-01 11:20 1181原来农村盖房子,一般 ... -
软件架构引言之项目管理的问题(转)
2010-06-01 11:16 960软件架构引言之项目管 ... -
常用软件过程——RUP
2010-06-01 10:35 969RUP是用例驱动,以架构 ... -
敏捷模型
2010-05-31 19:07 1196最近正在看java敏捷开发 ... -
weblogic9.2设置虚拟内存
2010-05-20 12:52 1251修改user_projects\domains\base_do ... -
weblogic默认路径
2010-05-17 13:59 3725weblogic中发布的项目都是带路径的,比如http://1 ... -
java平均分配算法
2010-05-07 13:26 11296100个数平均分配到指定数量的人 第一种方法 public ... -
用Collections.sort方法对list排序有两种方法
2010-05-07 11:55 1513用Collections.sort方法对list排序有两种方法 ... -
java url中的中文章问题
2010-04-27 16:28 1142根据页面设置的编码,在以get方式传值的时候 <he ... -
java常见的几种排序算法
2010-04-23 11:14 863用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序 ... -
使用 XStream 把 Java 对象序列化为 XML
2010-04-19 15:05 941将java对象完成xml与java对象之间的互相转换,方便好用 ... -
JAVA中浅复制与深复制
2010-04-19 11:21 8331.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变 ... -
jeshop
2010-04-06 23:09 3086struts2+hiberrnate+spring+ognl开 ... -
struts2的action标签
2010-04-02 16:17 1162使用action标签,可以允许在jsp页面中直接调用Actio ... -
eclipse开发ejb3的ant文件
2010-03-29 21:38 930<?xml version="1.0" ...
相关推荐
java操纵excel的jar包(jxl.jar包 源码)java操纵excel的jar包(jxl.jar包 源码)java操纵excel的jar包(jxl.jar包 源码)java操纵excel的jar包(jxl.jar包 源码)java操纵excel的jar包(jxl.jar包 源码)java操纵...
jxl是对excel强有力的操纵工具,它具有丰富的API可以满足对excel的各种开发需要。
JAVA操纵Excel的很好工具。是个开源包,能够用于Excel表的读取,和Excel表向其他数据库转换!
本文将深入探讨如何使用jxl.jar包来在Java中操纵Excel。 jxl.jar是一个专门用于读写Microsoft Excel文件的Java库。这个库允许Java程序以一种方便、高效的方式创建、修改和读取Excel电子表格。jxl.jar包含了一系列类...
用这个控件可以很容易的对excel文件进行读写操作。
使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在...
读的时候是这样的一个思路,先用一个输入流(InputStream)得到Excel文件,然后用jxl中的Workbook得到工作薄,用Sheet从工作薄中得到工作表,用Cell得到工作表中得某个单元格. InputStream->Workbook->Sheet->Cell,就...
本篇文章将深入探讨如何使用JXL.jar包来实现Java对Excel的操纵。 首先,JXL库提供了一个直观的API,使Java程序员能够处理Excel文件中的工作簿(Workbook)、工作表(Worksheet)、行(Row)和单元格(Cell)。这个...
import jxl.*; public class ExcelReading { public static void main(String[] args) { try { // 从本地文件创建只读Workbook对象 FileInputStream fis = new FileInputStream(new File("sourcefile.xls")); ...
import jxl.Workbook; File sourcefile = new File("path_to_your_file.xls"); try { FileInputStream fis = new FileInputStream(sourcefile); Workbook workbook = Workbook.getWorkbook(fis); } catch ...
import jxl.Workbook; try { // 从本地文件创建Workbook Workbook rwb = Workbook.getWorkbook(new File("sourcefile.xls")); // 或者从输入流创建Workbook FileInputStream is = new FileInputStream("source...
java实现对EXCEL的操作,网上下载jxl.jar包
在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,并要求在浏览器中展现报表,通过开放源码项目——Java Excel API简称JXL,使用它大家就可以方便地操纵Excel文件了。实现Excel项目报表的处理。 ...
JXL是一个Java库,用于读取、写入和修改Excel电子表格文件。它提供了丰富的API,允许开发者在Java应用中方便地处理Excel数据。`jxl API`的CHM文件涵盖了各种类和方法,如Workbook、Sheet、Cell等,它们分别代表Excel...
在Java中操纵Excel文件时,首先需要导入必要的库,如`jxl`。然后,可以使用`Workbook`类来表示Excel文件,它是整个Excel工作簿的容器。`Workbook`可以从本地文件系统加载,也可以从输入流中创建,例如通过`...
最近在网上看到一个用java来操纵excel的open source,在weblogic上试用了一下,觉得很不错,特此向大家推荐一下。 首先去http://www.andykhan.com/jexcelapi/index.html下载最新的JExcelApi,把jxl.jar置于你的...
在Web应用程序中,尤其是与CSV文件交互时,Java Excel API 提供了一个更强大、更灵活的解决方案,因为它可以直接操纵Excel的格式和功能。 API的主要功能包括: 1. 读取Excel 95、97、2000等不同格式的文件中的数据...