ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:45.10KB ,
资源ID:4737922      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4737922.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java解析并且操作excel 方法.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

java解析并且操作excel 方法.docx

1、java解析并且操作excel 方法java解析并且操作excel 方法 最近需求变化,需要把excel导入 我以前没有做过,所以我查了一些资料 和参考别人的代码以下是多种方式:import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import jxl.Workbook;import jxl.format.UnderlineStyle

2、;import jxl.write.Label;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;import jxl.write.biff.RowsExceededException;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFCellStyle;import o

3、rg.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;public class ExcelOpt /* 生成一个Excel文件 jxl* param fileName 要生成的Excel文件名 * jxl.jar 版本:2.6 */ public static void wr

4、iteExcel(String fileName) WritableWorkbook wwb = null; try /首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName); catch (IOException e) e.printStackTrace(); if(wwb!=null) /创建一个可写入的工作表 /Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 WritableSheet ws = ww

5、b.createSheet(工作表名称, 0); /下面开始添加单元格 for(int i=0;i10;i+) for(int j=0;j5;j+) /这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行 Label labelC = new Label(j, i, 这是第+(i+1)+行,第+(j+1)+列); try /将生成的单元格添加到工作表中 ws.addCell(labelC); catch (RowsExceededException e) e.printStackTrace(); catch (WriteException e) e.printStackTrace(

6、); try /从内存中写入文件中 wwb.write(); /关闭资源,释放内存 wwb.close(); catch (IOException e) e.printStackTrace(); catch (WriteException e) e.printStackTrace(); /* * 生成一个Excel文件POI* param inputFile 输入模板文件路径 * param outputFile 输入文件存放于服务器路径 * param dataList 待导出数据 * throws Exception * roseuid: */ public static void exp

7、ortExcelFile(String inputFile,String outputFile,List dataList) throws Exception/用模板文件构造poi POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFile);/创建模板工作表 HSSFWorkbook templatewb = new HSSFWorkbook(fs);/直接取模板第一个sheet对象 HSSFSheet templateSheet = templatewb.getSheetAt(1);/得到模板的第一个shee

8、t的第一行对象 为了得到模板样式 HSSFRow templateRow = templateSheet.getRow(0);/HSSFSheet timplateSheet = templatewb.getSheetAt(1); /取得Excel文件的总列数 int columns = templateSheet.getRow(short) 0).getPhysicalNumberOfCells();/ Debug.println(columns is : + columns); /=/创建样式数组 HSSFCellStyle styleArray = new HSSFCellStyleco

9、lumns;/一次性创建所有列的样式放在数组里 for (int s = 0; s columns; s+) /得到数组实例 styleArrays = templatewb.createCellStyle();/循环对每一个单元格进行赋值 /定位行 for (int rowId = 1; rowId dataList.size(); rowId+) /依次取第rowId行数据 每一个数据是valueList List valueList = (List) dataList.get(rowId - 1);/定位列 for (int columnId = 0; columnId columns;

10、 columnId+) /依次取出对应与colunmId列的值 /每一个单元格的值 String dataValue = (String) valueList.get(columnId);/取出colunmId列的的style /模板每一列的样式 HSSFCellStyle style = styleArraycolumnId;/取模板第colunmId列的单元格对象 /模板单元格对象 HSSFCell templateCell = templateRow.getCell(short) columnId);/创建一个新的rowId行 行对象 /新建的行对象 HSSFRow hssfRow =

11、templateSheet.createRow(rowId);/创建新的rowId行 columnId列 单元格对象 /新建的单元格对象 HSSFCell cell = hssfRow.createCell(short) columnId);/如果对应的模板单元格 样式为非锁定 if (templateCell.getCellStyle().getLocked() = false) /设置此列style为非锁定 style.setLocked(false);/设置到新的单元格上 cell.setCellStyle(style);/否则样式为锁定 else /设置此列style为锁定 style

12、.setLocked(true);/设置到新单元格上 cell.setCellStyle(style);/设置编码 cell.setEncoding(HSSFCell.ENCODING_UTF_16);/Debug.println(dataValue : + dataValue); /设置值 统一为String cell.setCellValue(dataValue);/设置输入流 FileOutputStream fOut = new FileOutputStream(outputFile);/将模板的内容写到输出文件上 templatewb.write(fOut);fOut.flush()

13、;/操作结束,关闭文件 fOut.close(); /* 导出数据为XLS格式* param fos 生成Excel文件Path* param bo 要导入的数据*/public static void writeExcelBo(String fos, java.util.List ve)jxl.write.WritableWorkbook wwb;trywwb= Workbook.createWorkbook(new File(fos);jxl.write.WritableSheet ws= wwb.createSheet(上市新书, 10);ws.addCell(new jxl.write

14、.Label(0, 1, 书名);ws.addCell(new jxl.write.Label(1, 1, 作者);ws.addCell(new jxl.write.Label(2, 1, 定价);ws.addCell(new jxl.write.Label(3, 1, 出版社);int bookSize=ve.size();BookVO book = new BookVO(); for (int i= 0; i bookSize; i+)book= (BookVO)ve.get(i);ws.addCell(new jxl.write.Label(0, i + 2, + book.getBoo

15、kName();ws.addCell(new jxl.write.Label(1, i + 2, book.getBookAuthor();ws.addCell(new jxl.write.Label(2, i + 2, + book.getBookPrice();ws.addCell(new jxl.write.Label(3, i + 2, book.getBookConcern();/ jxl.write.WritableFont wfc=/new jxl.write.WritableFont(WritableFont.ARIAL,255,WritableFont.BOLD,false,

16、UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);/jxl.write.WritableCellFormat wcfFC= new jxl.write.WritableCellFormat(wfc);ws.addCell(new jxl.write.Label(0, 0, 2007年07月即将上市新书!);wwb.write();/ 关闭Excel工作薄对象wwb.close(); catch (IOException e) catch (RowsExceededException e) catch (WriteException e)p

17、ublic static void main(String args) writeExcel(c:Test测试Excel.xls);System.out.println(OK);ArrayList list = new ArrayList();for (int i = 0; i 0) /对每个工作表进行循环 for(int i=0;i /得到当前工作表的行数 int rowNum = sheeti.getRows(); for(int j=0;j /得到当前行的所有单元格 Cell cells = sheeti.getRow(j); if(cells!=null&cells.length0)

18、/对每个单元格进行循环 for(int k=0;k /读取当前单元格的值 String cellValue = cellsk.getContents(); sb.append(cellValue+t); sb.append(rn); sb.append(rn); /最后关闭资源,释放内存 wb.close(); return sb.toString(); 二.写入Excel文件这里有很多格式了,比如文本内容加粗,加上某些颜色等,可以参考jxl的api.同时还推荐一篇不错的文章:java 代码/*生成一个Excel文件 * param fileName 要生成的Excel文件名 */ publi

19、c static void writeExcel(String fileName) WritableWorkbook wwb = null; try /首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象 wwb = Workbook.createWorkbook(new File(fileName); catch (IOException e) e.printStackTrace(); if(wwb!=null) /创建一个可写入的工作表 /Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置 Writa

20、bleSheet ws = wwb.createSheet(sheet1, 0); /下面开始添加单元格 for(int i=0;i10;i+) for(int j=0;j0) /对每个工作表进行循环 for(int i=0;i if(breakSheet) break; /得到当前工作表的行数 int rowNum = sheeti.getRows(); boolean breakRow = false; for(int j=0;j if(breakRow) break; /得到当前行的所有单元格 Cell cells = sheeti.getRow(j); if(cells!=null&c

21、ells.length0) boolean breakCell = false; /对每个单元格进行循环 for(int k=0;k if(breakCell) break; /读取当前单元格的值 String cellValue = cellsk.getContents(); if(cellValue=null) continue; if(cellValue.contains(keyWord) res = true; breakCell = true; breakRow = true; breakSheet = true; /最后关闭资源,释放内存 wb.close(); return re

22、s; 四.往Excel中插入图片图标插入图片的实现很容易,参看以下代码:java 代码/*往Excel中插入图片 * param dataSheet 待插入的工作表 * param col 图片从该列开始 * param row 图片从该行开始 * param width 图片所占的列数 * param height 图片所占的行数 * param imgFile 要插入的图片文件 */ public static void insertImg(WritableSheet dataSheet, int col, int row, int width, int height, File imgF

23、ile) WritableImage img = new WritableImage(col, row, width, height, imgFile); dataSheet.addImage(img); 以上代码的注释已经很清楚了,大概也就不用再解释了,我们可以用如下程序验证:java 代码try /创建一个工作薄 WritableWorkbook workbook = Workbook.createWorkbook(new File(D:/test1.xls); /待插入的工作表 WritableSheet imgSheet = workbook.createSheet(Images,0); /要插入的图片文件 File imgFile = new File(D:/1.png); /图片插入到第二行第一个单元格,长宽各占六个单元格 ins

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2