POI操作常用方法.doc_第1页
POI操作常用方法.doc_第2页
POI操作常用方法.doc_第3页
POI操作常用方法.doc_第4页
POI操作常用方法.doc_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论