有关Apache POI处理文档的基础方法总结如下:

Java读取Excel文件和Java写入Excel文件参看博主的另外两篇文章。

/*** POI处理基础方法总结* @author lmb**/
public class POIUtil {//1.创建工作簿 (WORKBOOK)HSSFWorkbook wb = new HSSFWorkbook();FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//2.创建工作表(SHEET)HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet1 = wb.createSheet("new sheet");HSSFSheet sheet2 = wb.createSheet("second sheet");FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//3.创建单元格(CELL)HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");// Create a row and put some cells in it. Rows are 0 based.HSSFRow row = sheet.createRow((short)0);// Create a cell and put a value in it.HSSFCell cell = row.createCell((short)0);cell.setCellValue(1);// Or do it on one line.row.createCell((short)1).setCellValue(1.2);row.createCell((short)2).setCellValue("This is a string");row.createCell((short)3).setCellValue(true);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//4.创建指定单元格式的单元格HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");// Create a row and put some cells in it. Rows are 0 based.HSSFRow row = sheet.createRow((short)0);// Create a cell and put a date value in it. The first cell is not styled// as a date.HSSFCell cell = row.createCell((short)0);cell.setCellValue(new Date());// we style the second cell as a date (and time). It is important to// create a new cell style from the workbook otherwise you can end up// modifying the built in style and effecting not only this cell but other cells.HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));cell = row.createCell((short)1);cell.setCellValue(new Date());cell.setCellStyle(cellStyle);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//5. 单元格的不同格式HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");HSSFRow row = sheet.createRow((short)2);row.createCell((short) 0).setCellValue(1.1);row.createCell((short) 1).setCellValue(new Date());row.createCell((short) 2).setCellValue("a string");row.createCell((short) 3).setCellValue(true);row.createCell((short) 4).setCellType(HSSFCell.CELL_TYPE_ERROR);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//6.单元格的不通对齐方式public static void main(String[] args)throws IOException{HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");HSSFRow row = sheet.createRow((short) 2);createCell(wb, row, (short) 0, HSSFCellStyle.ALIGN_CENTER);createCell(wb, row, (short) 1, HSSFCellStyle.ALIGN_CENTER_SELECTION);createCell(wb, row, (short) 2, HSSFCellStyle.ALIGN_FILL);createCell(wb, row, (short) 3, HSSFCellStyle.ALIGN_GENERAL);createCell(wb, row, (short) 4, HSSFCellStyle.ALIGN_JUSTIFY);createCell(wb, row, (short) 5, HSSFCellStyle.ALIGN_LEFT);createCell(wb, row, (short) 6, HSSFCellStyle.ALIGN_RIGHT);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();}/*** Creates a cell and aligns it a certain way.** @param wb        the workbook* @param row       the row to create the cell in* @param column    the column number to create the cell in* @param align     the alignment for the cell.*/private static void createCell(HSSFWorkbook wb, HSSFRow row, short column, short align){HSSFCell cell = row.createCell(column);cell.setCellValue("Align It");HSSFCellStyle cellStyle = wb.createCellStyle();cellStyle.setAlignment(align);cell.setCellStyle(cellStyle);}//7.单元格的边框设置Working with bordersHSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");// Create a row and put some cells in it. Rows are 0 based.HSSFRow row = sheet.createRow((short) 1);// Create a cell and put a value in it.HSSFCell cell = row.createCell((short) 1);cell.setCellValue(4);// Style the cell with borders all around.HSSFCellStyle style = wb.createCellStyle();style.setBorderBottom(HSSFCellStyle.BORDER_THIN);style.setBottomBorderColor(HSSFColor.BLACK.index);style.setBorderLeft(HSSFCellStyle.BORDER_THIN);style.setLeftBorderColor(HSSFColor.GREEN.index);style.setBorderRight(HSSFCellStyle.BORDER_THIN);style.setRightBorderColor(HSSFColor.BLUE.index);style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);style.setTopBorderColor(HSSFColor.BLACK.index);cell.setCellStyle(style);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//8.填充和颜色设置HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");// Create a row and put some cells in it. Rows are 0 based.HSSFRow row = sheet.createRow((short) 1);// Aqua backgroundHSSFCellStyle style = wb.createCellStyle();style.setFillBackgroundColor(HSSFColor.AQUA.index);style.setFillPattern(HSSFCellStyle.BIG_SPOTS);HSSFCell cell = row.createCell((short) 1);cell.setCellValue("X");cell.setCellStyle(style);// Orange "foreground", foreground being the fill foreground not the font color.style = wb.createCellStyle();style.setFillForegroundColor(HSSFColor.ORANGE.index);style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);cell = row.createCell((short) 2);cell.setCellValue("X");cell.setCellStyle(style);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//9.合并单元格操作HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");HSSFRow row = sheet.createRow((short) 1);HSSFCell cell = row.createCell((short) 1);cell.setCellValue("This is a test of merging");sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//10.字体设置HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");// Create a row and put some cells in it. Rows are 0 based.HSSFRow row = sheet.createRow((short) 1);// Create a new font and alter it.HSSFFont font = wb.createFont();font.setFontHeightInPoints((short)24);font.setFontName("Courier New");font.setItalic(true);font.setStrikeout(true);// Fonts are set into a style so create a new one to use.HSSFCellStyle style = wb.createCellStyle();style.setFont(font);// Create a cell and put a value in it.HSSFCell cell = row.createCell((short) 1);cell.setCellValue("This is a test of fonts");cell.setCellStyle(style);// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//11.自定义颜色HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet();HSSFRow row = sheet.createRow((short) 0);HSSFCell cell = row.createCell((short) 0);cell.setCellValue("Default Palette");//apply some colors from the standard palette,// as in the previous examples.//we'll use red text on a lime backgroundHSSFCellStyle style = wb.createCellStyle();style.setFillForegroundColor(HSSFColor.LIME.index);style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);HSSFFont font = wb.createFont();font.setColor(HSSFColor.RED.index);style.setFont(font);cell.setCellStyle(style);//save with the default paletteFileOutputStream out = new FileOutputStream("default_palette.xls");wb.write(out);out.close();//now, let's replace RED and LIME in the palette// with a more attractive combination// (lovingly borrowed from freebsd.org)cell.setCellValue("Modified Palette");//creating a custom palette for the workbookHSSFPalette palette = wb.getCustomPalette();//replacing the standard red with freebsd.org redpalette.setColorAtIndex(HSSFColor.RED.index,(byte) 153, //RGB red (0-255)(byte) 0,    //RGB green(byte) 0     //RGB blue);//replacing lime with freebsd.org goldpalette.setColorAtIndex(HSSFColor.LIME.index, (byte) 255, (byte) 204, (byte) 102);//save with the modified palette// note that wherever we have previously used RED or LIME, the// new colors magically appearout = new FileOutputStream("modified_palette.xls");wb.write(out);out.close();//12.读和重写EXCEL文件POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("workbook.xls"));HSSFWorkbook wb = new HSSFWorkbook(fs);HSSFSheet sheet = wb.getSheetAt(0);HSSFRow row = sheet.getRow(2);HSSFCell cell = row.getCell((short)3);if (cell == null)cell = row.createCell((short)3);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cell.setCellValue("a test");// Write the output to a fileFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//13.在EXCEL单元格中使用自动换行HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet s = wb.createSheet();HSSFRow r = null;HSSFCell c = null;HSSFCellStyle cs = wb.createCellStyle();HSSFFont f = wb.createFont();HSSFFont f2 = wb.createFont();cs = wb.createCellStyle();cs.setFont( f2 );//Word Wrap MUST be turned oncs.setWrapText( true );r = s.createRow( (short) 2 );r.setHeight( (short) 0x349 );c = r.createCell( (short) 2 );c.setCellType( HSSFCell.CELL_TYPE_STRING );c.setCellValue( "Use /n with word wrap on to create a new line" );c.setCellStyle( cs );s.setColumnWidth( (short) 2, (short) ( ( 50 * 8 ) / ( (double) 1 / 20 ) ) );FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );wb.write( fileOut );fileOut.close();//14.数字格式自定义HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("format sheet");HSSFCellStyle style;HSSFDataFormat format = wb.createDataFormat();HSSFRow row;HSSFCell cell;short rowNum = 0;short colNum = 0;row = sheet.createRow(rowNum++);cell = row.createCell(colNum);cell.setCellValue(11111.25);style = wb.createCellStyle();style.setDataFormat(format.getFormat("0.0"));cell.setCellStyle(style);row = sheet.createRow(rowNum++);cell = row.createCell(colNum);cell.setCellValue(11111.25);style = wb.createCellStyle();style.setDataFormat(format.getFormat("#,##0.0000"));cell.setCellStyle(style);FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//15.调整工作单位置HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("format sheet");HSSFPrintSetup ps = sheet.getPrintSetup();sheet.setAutobreaks(true);ps.setFitHeight((short)1);ps.setFitWidth((short)1);// Create various cells and rows for spreadsheet.FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//16.设置打印区域HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("Sheet1");wb.setPrintArea(0, "$A$1:$C$2");//sets the print area for the first sheet//Alternatively://wb.setPrintArea(0, 0, 1, 0, 0) is equivalent to using the name reference (See the JavaDocs for more details)// Create various cells and rows for spreadsheet.FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//17.标注脚注HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("format sheet");HSSFFooter footer = sheet.getFooter()footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );// Create various cells and rows for spreadsheet.FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//18.使用方便的内部提供的函数HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet1 = wb.createSheet( "new sheet" );// Create a merged regionHSSFRow row = sheet1.createRow( (short) 1 );HSSFRow row2 = sheet1.createRow( (short) 2 );HSSFCell cell = row.createCell( (short) 1 );cell.setCellValue( "This is a test of merging" );Region region = new Region( 1, (short) 1, 4, (short) 4 );sheet1.addMergedRegion( region );// Set the border and border colors.final short borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;HSSFRegionUtil.setBorderBottom( borderMediumDashed,region, sheet1, wb );HSSFRegionUtil.setBorderTop( borderMediumDashed,region, sheet1, wb );HSSFRegionUtil.setBorderLeft( borderMediumDashed,region, sheet1, wb );HSSFRegionUtil.setBorderRight( borderMediumDashed,region, sheet1, wb );HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);// Shows some usages of HSSFCellUtilHSSFCellStyle style = wb.createCellStyle();style.setIndention((short)4);HSSFCellUtil.createCell(row, 8, "This is the value of the cell", style);HSSFCell cell2 = HSSFCellUtil.createCell( row2, 8, "This is the value of the cell");HSSFCellUtil.setAlignment(cell2, wb, HSSFCellStyle.ALIGN_CENTER);// Write out the workbookFileOutputStream fileOut = new FileOutputStream( "workbook.xls" );wb.write( fileOut );fileOut.close();//19.在工作单中移动行,调整行的上下位置HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("row sheet");// Create various cells and rows for spreadsheet.// Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)sheet.shiftRows(5, 10, -5);FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//20.选种指定的工作单HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("row sheet");sheet.setSelected(true);// Create various cells and rows for spreadsheet.FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//21.工作单的放大缩小HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet1 = wb.createSheet("new sheet");sheet1.setZoom(3,4);   // 75 percent magnificationFileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//22.头注和脚注HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");HSSFHeader header = sheet.getHeader();header.setCenter("Center Header");header.setLeft("Left Header");header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") +HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16");FileOutputStream fileOut = new FileOutputStream("workbook.xls");wb.write(fileOut);fileOut.close();//以上实例代码均来自官方网站//POI中使用的颜色是用颜色索引来实现,如下:/** 颜色对照表 数字代表颜色索引8: BLACK60: BROWN59: OLIVE_GREEN58: DARK_GREEN56: DARK_TEAL18: DARK_BLUE32: DARK_BLUE62: INDIGO63: GREY_80_PERCENT53: ORANGE19: DARK_YELLOW17: GREEN21: TEAL38: TEAL12: BLUE39: BLUE54: BLUE_GREY23: GREY_50_PERCENT10: RED52: LIGHT_ORANGE50: LIME57: SEA_GREEN49: AQUA48: LIGHT_BLUE20: VIOLET36: VIOLET55: GREY_40_PERCENT14: PINK33: PINK51: GOLD13: YELLOW34: YELLOW11: BRIGHT_GREEN35: BRIGHT_GREEN15: TURQUOISE35: TURQUOISE16: DARK_RED37: DARK_RED40: SKY_BLUE61: PLUM25: PLUM22: GREY_25_PERCENT45: ROSE43: LIGHT_YELLOW42: LIGHT_GREEN41: LIGHT_TURQUOISE27:LIGHT_TURQUOISE44: PALE_BLUE46: LAVENDER9: WHITE24: CORNFLOWER_BLUE26: LEMON_CHIFFON25: MAROON28: ORCHID29: CORAL30: ROYAL_BLUE31: LIGHT_CORNFLOWER_BLUE*///23、自定义颜色,去掉注释,贴加,其他则查看颜色对照表HSSFPalette palette = this.getCustomPalette();palette.setColorAtIndex(idx,i, //RGB red (0-255)j,    //RGB greenk     //RGB blue);         }

【Apache POI】基础处理方法总结相关推荐

  1. Apache POI操作Excel导出JAVABEAN对象方法

    2019独角兽企业重金招聘Python工程师标准>>> Apache POI操作Excel导出方法说明 Apache的POI组件是Java操作Microsoft Office办公套件 ...

  2. Java开发小技巧(六):使用Apache POI读取Excel

    前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...

  3. SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」(亲测)

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 来源:Springboot使用POI实现导出Excel文件示例的搜索结果-阿里云开 ...

  4. java excel 操作 poi_Java使用apache poi进行excel相关操作

    一.基本介绍 1.1.Apache POI介绍 Apache POI是一个可以进行微软的文档进行开源库,可以操作的文档类型包括word.ppt.excel.visio.outlook.... 本文主要 ...

  5. apache poi_将HTML转换为Apache POI的RichTextString

    apache poi 1.概述 在本教程中,我们将构建一个将HTML作为输入的应用程序,并使用提供HTML的RichText表示形式创建Microsoft Excel工作簿. 为了生成Microsof ...

  6. 将HTML转换为Apache POI的RichTextString

    1.概述 在本教程中,我们将构建一个将HTML作为输入的应用程序,并使用提供HTML的RichText表示形式创建Microsoft Excel工作簿. 为了生成Microsoft Excel工作簿, ...

  7. apache poi教程_Apache POI教程

    apache poi教程 Welcome to Apache POI Tutorial. Sometimes we need to read data from Microsoft Excel Fil ...

  8. Apache POI Excel、WORD、PowerPoint、Visio处理

    一 :简介 开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel目前有两个框架,一个是apache 的poi, 另一个是 Java Excel Apache ...

  9. SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」

    有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...

最新文章

  1. hi3516a的文件系统错误
  2. linux 设备树_嵌入式系统砖家_初识设备树
  3. Java 调用 C++ (Java 调用 dll)康哥手把手教你
  4. struts.xml配置文件结构
  5. 关于c++静态类的说法
  6. java漂亮界面编程_计算机二级之JAVA篇
  7. fastjson与spring mvc整合的配置
  8. bash:附近有语法错误_Bash备忘单:按键组合和特殊语法
  9. 海报素材模板|超好看的新年素材,你真的不来看一看吗?
  10. [Ext JS 4] 拖放[drag and drop]
  11. 【AS3代码】AS调用JS
  12. 闭包 python_Python闭包思想与用法浅析
  13. bp神经网络预测模型python_BP神经网络模型:Python
  14. 在网页上添加可爱的Live 2D模型
  15. linux 韦恩图两个,在线&在R中绘制韦恩图的几种方法 和 一些漂亮的venn图
  16. 晚上如何配置ubuntu,保护眼睛?黑(暗)色主题
  17. 【Proteus仿真】Arduino UNO+uln2003驱动步进电机+按键启保停正反转控制
  18. java 读取excel数据
  19. Studio 3T无法连接MongoDB异常错误 解决方法
  20. python 项目架构设计

热门文章

  1. 浏览器User-Agent的详细信息
  2. zabbix监控ntpd服务
  3. 163免费邮使用体验
  4. linux bash shell中,单引号、 双引号,反引号(``)的区别及各种括号的区别
  5. 为什么CTRIP 网站页面中要把小图做在一起的原因.---减少HTML 链接数.
  6. 使用 WorkManager 管理后台和前台工作
  7. Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?
  8. 【Android】ActivityManager结构图
  9. The Web Audio autoplay policy will be re-enabled in 音频无法播放
  10. HashMap的使用方法详解