已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。二、 HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。三、 POI EXCEL文档结构类 HSSFWorkbook excel文档对象 HSSFSheet excel的sheet HSSFRow excel的行 HSSFCell excel的单元格 HSSFFont excel字体 HSSFName 名称 HSSFDataFormat 日期格式 HSSFHeader sheet头 HSSFFooter sheet尾 HSSFCellStyle cell样式 HSSFDateUtil 日期 HSSFPrintSetup 打印 HSSFErrorConstants 错误信息表四、 EXCEL常用操作方法1、 得到Excel常用对象Java代码1. POIFSFileSystemfs=newPOIFSFileSystem(newFileInputStream(d:/test.xls);2. /得到Excel工作簿对象3. HSSFWorkbookwb=newHSSFWorkbook(fs);4. /得到Excel工作表对象5. HSSFSheetsheet=wb.getSheetAt(0);6. /得到Excel工作表的行7. HSSFRowrow=sheet.getRow(i);8. /得到Excel工作表指定行的单元格9. HSSFCellcell=row.getCell(short)j);10. cellStyle=cell.getCellStyle();/得到单元格样式11. POIFSFileSystemfs=newPOIFSFileSystem(newFileInputStream(d:/test.xls);12. /得到Excel工作簿对象13. HSSFWorkbookwb=newHSSFWorkbook(fs);14. /得到Excel工作表对象15. HSSFSheetsheet=wb.getSheetAt(0);16. /得到Excel工作表的行17. HSSFRowrow=sheet.getRow(i);18. /得到Excel工作表指定行的单元格19. HSSFCellcell=row.getCell(short)j);20. cellStyle=cell.getCellStyle();/得到单元格样式2、建立Excel常用对象Java代码1. HSSFWorkbookwb=newHSSFWorkbook();/创建Excel工作簿对象2. HSSFSheetsheet=wb.createSheet(newsheet);/创建Excel工作表对象3. HSSFRowrow=sheet.createRow(short)0);/创建Excel工作表的行4. cellStyle=wb.createCellStyle();/创建单元格样式5. row.createCell(short)0).setCellStyle(cellStyle);/创建Excel工作表指定行的单元格6. row.createCell(short)0).setCellValue(1);/设置Excel工作表的值7. HSSFWorkbookwb=newHSSFWorkbook();/创建Excel工作簿对象8. HSSFSheetsheet=wb.createSheet(newsheet);/创建Excel工作表对象9. HSSFRowrow=sheet.createRow(short)0);/创建Excel工作表的行10. cellStyle=wb.createCellStyle();/创建单元格样式11. row.createCell(short)0).setCellStyle(cellStyle);/创建Excel工作表指定行的单元格12. row.createCell(short)0).setCellValue(1);/设置Excel工作表的值3、设置sheet名称和单元格内容Java代码1. wb.setSheetName(1,第一张工作表,HSSFCell.ENCODING_UTF_16);2. cell.setEncoding(short)1);3. cell.setCellValue(单元格内容);4. wb.setSheetName(1,第一张工作表,HSSFCell.ENCODING_UTF_16);5. cell.setEncoding(short)1);6. cell.setCellValue(单元格内容);4、取得sheet的数目Java代码1. wb.getNumberOfSheets()2. wb.getNumberOfSheets()5、 根据index取得sheet对象Java代码1. HSSFSheetsheet=wb.getSheetAt(0);2. HSSFSheetsheet=wb.getSheetAt(0);6、取得有效的行数Java代码1. introwcount=sheet.getLastRowNum();2. introwcount=sheet.getLastRowNum();7、取得一行的有效单元格个数Java代码1. row.getLastCellNum();2. row.getLastCellNum();8、单元格值类型读写Java代码1. cell.setCellType(HSSFCell.CELL_TYPE_STRING);/设置单元格为STRING类型2. cell.getNumericCellValue();/读取为数值类型的单元格内容3. cell.setCellType(HSSFCell.CELL_TYPE_STRING);/设置单元格为STRING类型4. cell.getNumericCellValue();/读取为数值类型的单元格内容9、设置列宽、行高Java代码1. sheet.setColumnWidth(short)column,(short)width);2. row.setHeight(short)height);3. sheet.setColumnWidth(short)column,(short)width);4. row.setHeight(short)height);10、添加区域,合并单元格Java代码1. Regionregion=newRegion(short)rowFrom,(short)columnFrom,(short)rowTo2. ,(short)columnTo);/合并从第rowFrom行columnFrom列3. sheet.addMergedRegion(region);/到rowTo行columnTo的区域4. /得到所有区域5. sheet.getNumMergedRegions()6. Regionregion=newRegion(short)rowFrom,(short)columnFrom,(short)rowTo7. ,(short)columnTo);/合并从第rowFrom行columnFrom列8. sheet.addMergedRegion(region);/到rowTo行columnTo的区域9. /得到所有区域10. sheet.getNumMergedRegions()11、保存Excel文件Java代码1. FileOutputStreamfileOut=newFileOutputStream(path);2. wb.write(fileOut);3. FileOutputStreamfileOut=newFileOutputStream(path);4. wb.write(fileOut);12、根据单元格不同属性返回字符串数值Java代码1. publicStringgetCellStringValue(HSSFCellcell)2. StringcellValue=;3. switch(cell.getCellType()4. caseHSSFCell.CELL_TYPE_STRING:/字符串类型5. cellValue=cell.getStringCellValue();6. if(cellValue.trim().equals()|cellValue.trim().length()=0)7. cellValue=;8. break;9. caseHSSFCell.CELL_TYPE_NUMERIC:/数值类型10. cellValue=String.valueOf(cell.getNumericCellValue();11. break;12. caseHSSFCell.CELL_TYPE_FORMULA:/公式13. cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);14. cellValue=String.valueOf(cell.getNumericCellValue();15. break;16. caseHSSFCell.CELL_TYPE_BLANK:17. cellValue=;18. break;19. caseHSSFCell.CELL_TYPE_BOOLEAN:20. break;21. caseHSSFCell.CELL_TYPE_ERROR:22. break;23. default:24. break;25. 26. returncellValue;27. 28. publicStringgetCellStringValue(HSSFCellcell)29. StringcellValue=;30. switch(cell.getCellType()31. caseHSSFCell.CELL_TYPE_STRING:/字符串类型32. cellValue=cell.getStringCellValue();33. if(cellValue.trim().equals()|cellValue.trim().length()=0)34. cellValue=;35. break;36. caseHSSFCell.CELL_TYPE_NUMERIC:/数值类型37. cellValue=String.valueOf(cell.getNumericCellValue();38. break;39. caseHSSFCell.CELL_TYPE_FORMULA:/公式40. cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);41. cellValue=String.valueOf(cell.getNumericCellValue();42. break;43. caseHSSFCell.CELL_TYPE_BLANK:44. cellValue=;45. break;46. caseHSSFCell.CELL_TYPE_BOOLEAN:47. break;48. caseHSSFCell.CELL_TYPE_ERROR:49. break;50. default:51. break;52. 53. returncellValue;54. 13、常用单元格边框格式Java代码1. HSSFCellStylestyle=wb.createCellStyle();2. style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);/下边框3. style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);/左边框4. style.setBorderRight(HSSFCellStyle.BORDER_THIN);/右边框5. style.setBorderTop(HSSFCellStyle.BORDER_THIN);/上边框6. HSSFCellStylestyle=wb.createCellStyle();7. style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);/下边框8. style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);/左边框9. style.setBorderRight(HSSFCellStyle.BORDER_THIN);/右边框10. style.setBorderTop(HSSFCellStyle.BORDER_THIN);/上边框14、设置字体和内容位置Java代码1. HSSFFontf=wb.createFont();2. f.setFontHeightInPoints(short)11);/字号3. f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);/加粗4. style.setFont(f);5. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);/左右居中6. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);/上下居中7. style.setRotation(shortrotation);/单元格内容的旋转的角度8. HSSFDataFormatdf=wb.createDataFormat();9. style1.setDataFormat(df.getFormat(0.00%);/设置单元格数据格式10. cell.setCellFormula(string);/给单元格设公式11. style.setRotation(shortrotation);/单元格内容的旋转的角度12. HSSFFontf=wb.createFont();13. f.setFontHeightInPoints(short)11);/字号14. f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);/加粗15. style.setFont(f);16. style.setAlignment(HSSFCellStyle.ALIGN_CENTER);/左右居中17. style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);/上下居中18. style.setRotation(shortrotation);/单元格内容的旋转的角度19. HSSFDataFormatdf=wb.createDataFormat();20. style1.setDataFormat(df.getFormat(0.00%);/设置单元格数据格式21. cell.setCellFormula(string);/给单元格设公式22. style.setRotation(shortrotation);/单元格内容的旋转的角度15、插入图片Java代码1. /先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray2. ByteArrayOutputStreambyteArrayOut=newByteArrayOutputStream();3. BufferedImagebufferImg=ImageIO.read(newFile(ok.jpg);4. ImageIO.write(bufferImg,jpg,byteArrayOut);5. /读进一个excel模版6. FileInputStreamfos=newFileInputStream(filePathName+/stencil.xlt);7. fs=newPOIFSFileSystem(fos);8. /创建一个工作薄9. HSSFWorkbookwb=newHSSFWorkbook(fs);10. HSSFSheetsheet=wb.getSheetAt(0);11. HSSFPatriarchpatriarch=sheet.createDrawingPatriarch();12. HSSFClientAnchoranchor=newHSSFClientAnchor(0,0,1023,255,(short)0,0,(short)10,10);13. patriarch.createPicture(anchor,wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG);14. /先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray15. ByteArrayOutputStreambyteArrayOut=newByteArrayOutputStream();16. BufferedImagebufferImg=ImageIO.read(newFile(ok.jpg);17. ImageIO.write(bufferImg,jpg,byteArrayOut);18. /读进一个excel模版19. FileInputStreamfos=newFileInputStream(filePathName+/stencil.xlt);20. fs=newPOIFSFileSystem(fos);21. /创建一个工作薄22. HSSFWorkbookwb=newHSSFWorkbook(fs);23. HSSFSheetsheet=wb.getSheetAt(0);24. HSSFPatriarchpatriarch=sheet.createDrawingPatriarch();25. HSSFClientAnchoranchor=newHSSFClientAnchor(0,0,1023,255,(short)0,0,(short)10,10);26. patriarch.createPicture(anchor,wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG);16、调整工作表位置Java代码1. HSSFWorkbookwb=newHSSFWorkbook();2. HSSFSheetsheet=wb.createSheet(formatsheet);3. HSSFPrintSetupps=sheet.getPrintSetup();4. sheet.setAutobreaks(true);5. ps.setFitHeight(short)1);6. ps.setFitWidth(short)1);7. HSSFWorkbookwb=newHSSFWorkbook();8. HSSFSheetsheet=wb.createSheet(formatsheet);9. HSSFPrintSetupps=sheet.getPrintSetup();10. sheet.setAutobreaks(true);11. ps.setFitHeight(short)1);12. ps.setFitWidth(short)1);17、设置打印区域Java代码1. HSSFSheetsheet=wb.createSheet(Sheet1);2. wb.setPrintArea(0,$A$1:$C$2);3. HSSFSheetsheet=wb.createSheet(Sheet1);4. wb.setPrintArea(0,$A$1:$C$2);18、标注脚注Java代码1. HSSFSheetsheet=wb.createSheet(formatsheet);2. HSSFFooterfooter=sheet.getFooter()3. footer.setRight(Page+HSSFFooter.page()+of+HSSFFooter.numPages();4. HSSFSheetsheet=wb.createSheet(formatsheet);5. HSSFFooterfooter=sheet.getFooter()6. footer.setRight(Page+HSSFFooter.page()+of+HSSFFooter.numPages();19、在工作单中清空行数据,调整行位置Java代码1. HSSFWorkbookwb=newHSSFWorkbook();2. HSSFSheetsheet=wb.createSheet(rowsheet);3. /Createvariouscellsandrowsforspreadsheet.4. /Shiftrows6-11onthespreadsheettothetop(rows0-5)5. sheet.shiftRows(5,10,-5);6. HSSFWorkbookwb=newHSSFWorkbook();7. HSSFSheetsheet=wb.createSheet(rowsheet);8. /Createvariouscellsandrowsforspreadsheet.9. /Shiftrows6-11onthespreadsheettothetop(rows0-5)10. sheet.shiftRows(5,10,-5);20、选中指定的工作表Java代码1. HSSFSheetsheet=wb.createSheet(rowsheet);2. heet.setSelected(true);3. HSSFSheetsheet=wb.createSheet(rowsheet);4. heet.setSelected(true);21、工作表的放大缩小Java代码1. HSSFSheetsheet1=wb.createSheet(newsheet);2. sheet1.setZoom(1,2);/50percentmagnification3. HSSFSheetsheet1=wb.createSheet(newsheet);4. sheet1.setZoom(1,2);/50percentmagnification22、头注和脚注Java代码1. HSSFSheetsheet=wb.createSheet(newsheet);2. HSSFHeaderheader=sheet.getHeader();3. header.setCenter(CenterHeader);4. header.setLeft(LeftHeader);5. header.setRight(HSSFHeader.font(Stencil-Normal,Italic)+6. HSSFHeader.fontSize(short)16)+Rightw/Stencil-NormalItalicfontandsize16);7. HSSFSheetsheet=wb.createSheet(newsheet);8. HSSFHeaderheader=sheet.getHeader();9. header.setCenter(CenterHeader);10. header.setLeft(LeftHeader);11. header.setRight(HSSFHeader.font(Stencil-Normal,Italic)+12. HSSFHeader.fontSize(short)16)+Rightw/Stencil-NormalItalicfontandsize16);23、自定义颜色Java代码1. HSSFCellStylestyle=wb.createCellStyle();2. style.setFillForegroundColor(HSSFColor.LIME.index);3. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);4. HSSFFontfont=wb.createFont();5. font.setColor(HSSFColor.RED.index);6. style.setFont(font);7. cell.setCellStyle(style);8. HSSFCellStylestyle=wb.createCellStyle();9. style.setFillForegroundColor(HSSFColor.LIME.index);10. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);11. HSSFFontfont=wb.createFont();12. font.setColor(HSSFColor.RED.index);13. style.setFont(font);14. cell.setCellStyle(style);24、填充和颜色设置Java代码1. HSSFCellStylestyle=wb.createCellStyle();2. style.setFillBackgroundColor(HSSFColor.AQUA.index);3. style.setFillPattern(HSSFCellStyle.BIG_SPOTS);4. HSSFCellcell=row.createCell(short)1);5. cell.setCellValue(X);6. style=wb.createCellStyle();7. style.setFillForegroundColor(HSSFColor.ORANGE.index);8. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);9. cell.setCellStyle(style);10. HSSFCellStylestyle=wb.createCellStyle();11. style.setFillBackgroundColor(HSSFColor.AQUA.index);12. style.setFillPattern(HSSFCellStyle.BIG_SPOTS);13. HSSFCellcell=row.createCell(short)1);14. cell.setCellValue(X);15. style=wb.createCellStyle();16. style.setFillForegroundColor(HSSFColor.ORANGE.index);17. style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);18. cell.setCellStyle(style);25、强行刷新单元格公式Java代码1. HSSFFormulaEvaluatoreval=newHSSFFormulaEval
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 渠道改造合同范本
- 苗木订购协议书
- 融资出租协议书
- 视频购置协议书
- 设备出让协议书
- 设施用地协议书
- 评审廉洁协议书
- 试驾车辆协议书
- 2025枣庄市卫生健康服务中心招聘120急救电话调度员1人考试重点试题及答案解析
- 库房共管协议书
- 陕西省咸阳市2024-2025学年高一上学期期末教学质量检测数学试卷(含解析)
- 盐城市2025年滨海县事业单位公开招聘人员66人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 2025江苏盐城东台市消防救援综合保障中心招聘16人笔试考试参考题库及答案解析
- 2025年广东省第一次普通高中学业水平合格性考试(春季高考)数学试题(含答案详解)
- 2026年企业内容运营方案设计与品牌价值传播指南
- GB 46768-2025有限空间作业安全技术规范
- T/CECS 10214-2022钢面镁质复合风管
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 髋关节撞击综合征诊疗课件
- 医院药房管理 第十章 医院药学信息服务临床药学
- 核对稿600单元概述校核
评论
0/150
提交评论