首页 > 代码库 > JXL.jar简单封装Excel读写操作
JXL.jar简单封装Excel读写操作
1.分析
一个excel文件可以有多页,每页excel中可以有多行,每行中可以有多列,用面向对象的思想可以把一行中的某列看作是一个String对象,一行看作是一个包含多个列的对象,一页是包含多行的对面,一个excle文件就是包含多页的对象
2.行对象的设计
package com.zhaochao.utils; import java.util.List; /** * * excel的行对象 * * @author 赵超 * */ public class ExcelRow { private List<String> colData; //当前行的所有列数据 public Integer getCols() { return colData.size(); } public List<String> getColData() { return colData; } public void setColData(List<String> colData2) { this.colData = http://www.mamicode.com/colData2;>2.页对象的设计
package com.zhaochao.utils; import java.util.List; /** * * Excel页对象 * * @author 赵超 * */ public class ExcelPage { private List<ExcelRow> rowData; //当页excel的所有行数据 public Integer getRows() { return rowData.size(); } public List<ExcelRow> getRowData() { return rowData; } public void setRowData(List<ExcelRow> rowData) { this.rowData = http://www.mamicode.com/rowData;>3.excel对象的设计
package com.zhaochao.utils; import java.util.List; /** * * Excel模型类 * * * @author 赵超 * */ public class ExcelModel { private List<ExcelPage> pageData; //Excel每页的数据 public Integer getPages() { return pageData.size(); } public List<ExcelPage> getPageData() { return pageData; } public void setPageData(List<ExcelPage> pageData) { this.pageData = http://www.mamicode.com/pageData;>4.excel读写工具类的设计
package com.zhaochao.utils; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; /** * * @author 操作excel工具类 * */ public class ExcelUtil { public static void main(String [] args){ //testWriteExcel(); testReadExcel(); } public static void testReadExcel(){ //String urlStr="http://baaifile.b0.upaiyun.com/uploadfile/2014/10/25/201410251038347176.xls"; //String urlStr="C:\\Users\\Administrator\\Desktop\\privateCoupon.xls"; String urlStr="c://user.xls"; ExcelModel model= ExcelUtil.ReadExcel(urlStr); int pageSize=0; for(ExcelPage page: model.getPageData()){ for(ExcelRow row:page.getRowData()){ for(String col:row.getColData()){ System.out.print(col+" "); } System.out.println(); } System.out.println("======总共"+model.getPages()+"页=====第"+(++pageSize)+"页===================="); } } public static void testWriteExcel(){ String fileName="c://user.xls"; //设置两列数据 List<String> cols=new ArrayList<String>(); cols.add("admin"); cols.add("123"); //设置行数据 ExcelRow row=new ExcelRow(); row.setColData(cols); List<ExcelRow> rows=new ArrayList<ExcelRow>(); rows.add(row); rows.add(row); //设置页数据 ExcelPage page=new ExcelPage(); page.setRowData(rows); List<ExcelPage> pages=new ArrayList<ExcelPage>(); pages.add(page); pages.add(page); //设置excleModel ExcelModel model=new ExcelModel(); model.setPageData(pages); writeExcel(fileName,model); } /** * 在线解析Excel * * @param urlStr 可以是http://开头的url,也可以是文件路径 * * @return 返回ExcelMode */ private static ExcelModel ReadExcel(String urlStr) { ExcelModel excle= new ExcelModel(); try { InputStream is=null; if(urlStr.startsWith("http://")){ URL url=new URL(urlStr); HttpURLConnection httpUrl=(HttpURLConnection) url.openConnection(); httpUrl.connect(); is = httpUrl.getInputStream(); }else{ File f=new File(urlStr); if(f.exists()){ is= new FileInputStream(f) ; }else{ throw new Exception("文件不存"); } } Workbook wb = Workbook.getWorkbook(is); jxl.Sheet [] sheet =wb.getSheets(); List<ExcelPage> pageDate=new ArrayList<ExcelPage>(); for(int s=0;s<sheet.length;s++){ ExcelPage page=new ExcelPage(); List<ExcelRow> rows=new ArrayList<ExcelRow>(); for(int i=0;i<sheet[s].getRows();i++){ ExcelRow row=new ExcelRow(); List<String> colData=http://www.mamicode.com/new ArrayList();> 5.写测试
6.读测试
7.jxl.jar包下载载址http://blog.csdn.net/whzhaochao/article/details/21191879
JXL.jar简单封装Excel读写操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。