POI操作EXCEL技巧

  1. 1.创建工作簿 (WORKBOOK)      
  2.      
  3.     HSSFWorkbook wb = new HSSFWorkbook();      
  4.      
  5.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  6.      
  7.     wb.write(fileOut);      
  8.      
  9.     fileOut.close();      
  10.      
  11. 2.创建工作表(SHEET)      
  12.      
  13.     HSSFWorkbook wb = new HSSFWorkbook();      
  14.      
  15.     HSSFSheet sheet1 = wb.createSheet("new sheet");      
  16.      
  17.     HSSFSheet sheet2 = wb.createSheet("second sheet");      
  18.      
  19.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  20.      
  21.     wb.write(fileOut);      
  22.      
  23.     fileOut.close();      
  24.      
  25. 3.创建单元格(CELL)      
  26.      
  27.     HSSFWorkbook wb = new HSSFWorkbook();      
  28.      
  29.     HSSFSheet sheet = wb.createSheet("new sheet");      
  30.      
  31.     // Create a row and put some cells in it. Rows are 0 based.      
  32.      
  33.     HSSFRow row = sheet.createRow((short)0);      
  34.      
  35.     // Create a cell and put a value in it.      
  36.      
  37.     HSSFCell cell = row.createCell((short)0);      
  38.      
  39.     cell.setCellValue(1);      
  40.      
  41.     // Or do it on one line.      
  42.      
  43.     row.createCell((short)1).setCellValue(1.2);      
  44.      
  45.     row.createCell((short)2).setCellValue("This is a string");      
  46.      
  47.     row.createCell((short)3).setCellValue(true);      
  48.      
  49.     // Write the output to a file      
  50.      
  51.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  52.      
  53.     wb.write(fileOut);      
  54.      
  55.     fileOut.close();      
  56.      
  57. 4.创建指定单元格式的单元格      
  58.      
  59.     HSSFWorkbook wb = new HSSFWorkbook();      
  60.      
  61.     HSSFSheet sheet = wb.createSheet("new sheet");      
  62.      
  63.     // Create a row and put some cells in it. Rows are 0 based.      
  64.      
  65.     HSSFRow row = sheet.createRow((short)0);      
  66.      
  67.     // Create a cell and put a date value in it.  The first cell is not styled      
  68.      
  69.     // as a date.      
  70.      
  71.     HSSFCell cell = row.createCell((short)0);      
  72.      
  73.     cell.setCellValue(new Date());      
  74.      
  75.     // we style the second cell as a date (and time).  It is important to      
  76.      
  77.     // create a new cell style from the workbook otherwise you can end up      
  78.      
  79.     // modifying the built in style and effecting not only this cell but other cells.      
  80.      
  81.     HSSFCellStyle cellStyle = wb.createCellStyle();      
  82.      
  83.     cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));      
  84.      
  85.     cell = row.createCell((short)1);      
  86.      
  87.     cell.setCellValue(new Date());      
  88.      
  89.     cell.setCellStyle(cellStyle);      
  90.      
  91.     // Write the output to a file      
  92.      
  93.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  94.      
  95.     wb.write(fileOut);      
  96.      
  97.     fileOut.close();      
  98.      
  99. 5. 单元格的不同格式      
  100.      
  101.     HSSFWorkbook wb = new HSSFWorkbook();      
  102.      
  103.     HSSFSheet sheet = wb.createSheet("new sheet");      
  104.      
  105.     HSSFRow row = sheet.createRow((short)2);      
  106.      
  107.     row.createCell((short0).setCellValue(1.1);      
  108.      
  109.     row.createCell((short1).setCellValue(new Date());      
  110.      
  111.     row.createCell((short2).setCellValue("a string");      
  112.      
  113.     row.createCell((short3).setCellValue(true);      
  114.      
  115.     row.createCell((short4).setCellType(HSSFCell.CELL_TYPE_ERROR);      
  116.      
  117.     // Write the output to a file      
  118.      
  119.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  120.      
  121.     wb.write(fileOut);      
  122.      
  123.     fileOut.close();      
  124.      
  125. 6.单元格的不通对齐方式      
  126.      
  127.     public static void main(String[] args)      
  128.      
  129.             throws IOException      
  130.      
  131.     {      
  132.      
  133.         HSSFWorkbook wb = new HSSFWorkbook();      
  134.      
  135.         HSSFSheet sheet = wb.createSheet("new sheet");      
  136.      
  137.         HSSFRow row = sheet.createRow((short2);      
  138.      
  139.         createCell(wb, row, (short0, HSSFCellStyle.ALIGN_CENTER);      
  140.      
  141.         createCell(wb, row, (short1, HSSFCellStyle.ALIGN_CENTER_SELECTION);      
  142.      
  143.         createCell(wb, row, (short2, HSSFCellStyle.ALIGN_FILL);      
  144.      
  145.         createCell(wb, row, (short3, HSSFCellStyle.ALIGN_GENERAL);      
  146.      
  147.         createCell(wb, row, (short4, HSSFCellStyle.ALIGN_JUSTIFY);      
  148.      
  149.         createCell(wb, row, (short5, HSSFCellStyle.ALIGN_LEFT);      
  150.      
  151.         createCell(wb, row, (short6, HSSFCellStyle.ALIGN_RIGHT);      
  152.      
  153.         // Write the output to a file      
  154.      
  155.         FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  156.      
  157.         wb.write(fileOut);      
  158.      
  159.         fileOut.close();      
  160.      
  161.     }      
  162.      
  163.     /**    
  164.    
  165.      * Creates a cell and aligns it a certain way.    
  166.    
  167.      *    
  168.    
  169.      * @param wb        the workbook    
  170.    
  171.      * @param row       the row to create the cell in    
  172.    
  173.      * @param column    the column number to create the cell in    
  174.    
  175.      * @param align     the alignment for the cell.    
  176.    
  177.      */     
  178.      
  179.     private static void createCell(HSSFWorkbook wb, HSSFRow row, short column, short align)      
  180.      
  181.     {      
  182.      
  183.         HSSFCell cell = row.createCell(column);      
  184.      
  185.         cell.setCellValue("Align It");      
  186.      
  187.         HSSFCellStyle cellStyle = wb.createCellStyle();      
  188.      
  189.         cellStyle.setAlignment(align);      
  190.      
  191.         cell.setCellStyle(cellStyle);      
  192.      
  193.     }      
  194.      
  195. 7.单元格的边框设置      
  196.      
  197. Working with borders      
  198.      
  199.     HSSFWorkbook wb = new HSSFWorkbook();      
  200.      
  201.     HSSFSheet sheet = wb.createSheet("new sheet");      
  202.      
  203.     // Create a row and put some cells in it. Rows are 0 based.      
  204.      
  205.     HSSFRow row = sheet.createRow((short1);      
  206.      
  207.     // Create a cell and put a value in it.      
  208.      
  209.     HSSFCell cell = row.createCell((short1);      
  210.      
  211.     cell.setCellValue(4);      
  212.      
  213.     // Style the cell with borders all around.      
  214.      
  215.     HSSFCellStyle style = wb.createCellStyle();      
  216.      
  217.     style.setBorderBottom(HSSFCellStyle.BORDER_THIN);      
  218.      
  219.     style.setBottomBorderColor(HSSFColor.BLACK.index);      
  220.      
  221.     style.setBorderLeft(HSSFCellStyle.BORDER_THIN);      
  222.      
  223.     style.setLeftBorderColor(HSSFColor.GREEN.index);      
  224.      
  225.     style.setBorderRight(HSSFCellStyle.BORDER_THIN);      
  226.      
  227.     style.setRightBorderColor(HSSFColor.BLUE.index);      
  228.      
  229.     style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM_DASHED);      
  230.      
  231.     style.setTopBorderColor(HSSFColor.BLACK.index);      
  232.      
  233.     cell.setCellStyle(style);      
  234.      
  235.     // Write the output to a file      
  236.      
  237.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  238.      
  239.     wb.write(fileOut);      
  240.      
  241.     fileOut.close();      
  242.      
  243. 8.填充和颜色设置      
  244.      
  245.     HSSFWorkbook wb = new HSSFWorkbook();      
  246.      
  247.     HSSFSheet sheet = wb.createSheet("new sheet");      
  248.      
  249.     // Create a row and put some cells in it. Rows are 0 based.      
  250.      
  251.     HSSFRow row = sheet.createRow((short1);      
  252.      
  253.     // Aqua background      
  254.      
  255.     HSSFCellStyle style = wb.createCellStyle();      
  256.      
  257.     style.setFillBackgroundColor(HSSFColor.AQUA.index);      
  258.      
  259.     style.setFillPattern(HSSFCellStyle.BIG_SPOTS);      
  260.      
  261.     HSSFCell cell = row.createCell((short1);      
  262.      
  263.     cell.setCellValue("X");      
  264.      
  265.     cell.setCellStyle(style);      
  266.      
  267.     // Orange "foreground", foreground being the fill foreground not the font color.      
  268.      
  269.     style = wb.createCellStyle();      
  270.      
  271.     style.setFillForegroundColor(HSSFColor.ORANGE.index);      
  272.      
  273.     style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);      
  274.      
  275.     cell = row.createCell((short2);      
  276.      
  277.     cell.setCellValue("X");      
  278.      
  279.     cell.setCellStyle(style);      
  280.      
  281.     // Write the output to a file      
  282.      
  283.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  284.      
  285.     wb.write(fileOut);      
  286.      
  287.     fileOut.close();      
  288.      
  289. 9.合并单元格操作      
  290.      
  291.     HSSFWorkbook wb = new HSSFWorkbook();      
  292.      
  293.     HSSFSheet sheet = wb.createSheet("new sheet");      
  294.      
  295.     HSSFRow row = sheet.createRow((short1);      
  296.      
  297.     HSSFCell cell = row.createCell((short1);      
  298.      
  299.     cell.setCellValue("This is a test of merging");      
  300.      
  301.     sheet.addMergedRegion(new Region(1,(short)1,1,(short)2));      
  302.      
  303.     // Write the output to a file      
  304.      
  305.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  306.      
  307.     wb.write(fileOut);      
  308.      
  309.     fileOut.close();      
  310.      
  311. 10.字体设置      
  312.      
  313.     HSSFWorkbook wb = new HSSFWorkbook();      
  314.      
  315.     HSSFSheet sheet = wb.createSheet("new sheet");      
  316.      
  317.     // Create a row and put some cells in it. Rows are 0 based.      
  318.      
  319.     HSSFRow row = sheet.createRow((short1);      
  320.      
  321.     // Create a new font and alter it.      
  322.      
  323.     HSSFFont font = wb.createFont();      
  324.      
  325.     font.setFontHeightInPoints((short)24);      
  326.      
  327.     font.setFontName("Courier New");      
  328.      
  329.     font.setItalic(true);      
  330.      
  331.     font.setStrikeout(true);      
  332.      
  333.     // Fonts are set into a style so create a new one to use.      
  334.      
  335.     HSSFCellStyle style = wb.createCellStyle();      
  336.      
  337.     style.setFont(font);      
  338.      
  339.     // Create a cell and put a value in it.      
  340.      
  341.     HSSFCell cell = row.createCell((short1);      
  342.      
  343.     cell.setCellValue("This is a test of fonts");      
  344.      
  345.     cell.setCellStyle(style);      
  346.      
  347.     // Write the output to a file      
  348.      
  349.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  350.      
  351.     wb.write(fileOut);      
  352.      
  353.     fileOut.close();      
  354.      
  355. 11.自定义颜色      
  356.      
  357.     HSSFWorkbook wb = new HSSFWorkbook();      
  358.      
  359.     HSSFSheet sheet = wb.createSheet();      
  360.      
  361.     HSSFRow row = sheet.createRow((short0);      
  362.      
  363.     HSSFCell cell = row.createCell((short0);      
  364.      
  365.     cell.setCellValue("Default Palette");      
  366.      
  367.     //apply some colors from the standard palette,      
  368.      
  369.     // as in the previous examples.      
  370.      
  371.     //we'll use red text on a lime background      
  372.      
  373.     HSSFCellStyle style = wb.createCellStyle();      
  374.      
  375.     style.setFillForegroundColor(HSSFColor.LIME.index);      
  376.      
  377.     style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);      
  378.      
  379.     HSSFFont font = wb.createFont();      
  380.      
  381.     font.setColor(HSSFColor.RED.index);      
  382.      
  383.     style.setFont(font);      
  384.      
  385.     cell.setCellStyle(style);      
  386.      
  387.     //save with the default palette      
  388.      
  389.     FileOutputStream out = new FileOutputStream("default_palette.xls");      
  390.      
  391.     wb.write(out);      
  392.      
  393.     out.close();      
  394.      
  395.     //now, let's replace RED and LIME in the palette      
  396.      
  397.     // with a more attractive combination      
  398.      
  399.     // (lovingly borrowed from freebsd.org)      
  400.      
  401.     cell.setCellValue("Modified Palette");      
  402.      
  403.     //creating a custom palette for the workbook      
  404.      
  405.     HSSFPalette palette = wb.getCustomPalette();      
  406.      
  407.     //replacing the standard red with freebsd.org red      
  408.      
  409.     palette.setColorAtIndex(HSSFColor.RED.index,      
  410.      
  411.             (byte153,  //RGB red (0-255)      
  412.      
  413.             (byte0,    //RGB green      
  414.      
  415.             (byte0     //RGB blue      
  416.      
  417.     );      
  418.      
  419.     //replacing lime with freebsd.org gold      
  420.      
  421.     palette.setColorAtIndex(HSSFColor.LIME.index, (byte255, (byte204, (byte102);      
  422.      
  423.     //save with the modified palette      
  424.      
  425.     // note that wherever we have previously used RED or LIME, the      
  426.      
  427.     // new colors magically appear      
  428.      
  429.     out = new FileOutputStream("modified_palette.xls");      
  430.      
  431.     wb.write(out);      
  432.      
  433.     out.close();      
  434.      
  435. 12.读和重写EXCEL文件      
  436.      
  437.     POIFSFileSystem fs      =      
  438.      
  439.             new POIFSFileSystem(new FileInputStream("workbook.xls"));      
  440.      
  441.     HSSFWorkbook wb = new HSSFWorkbook(fs);      
  442.      
  443.     HSSFSheet sheet = wb.getSheetAt(0);      
  444.      
  445.     HSSFRow row = sheet.getRow(2);      
  446.      
  447.     HSSFCell cell = row.getCell((short)3);      
  448.      
  449.     if (cell == null)      
  450.      
  451.         cell = row.createCell((short)3);      
  452.      
  453.     cell.setCellType(HSSFCell.CELL_TYPE_STRING);      
  454.      
  455.     cell.setCellValue("a test");      
  456.      
  457.     // Write the output to a file      
  458.      
  459.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  460.      
  461.     wb.write(fileOut);      
  462.      
  463.     fileOut.close();      
  464.      
  465. 13.在EXCEL单元格中使用自动换行      
  466.      
  467.     HSSFWorkbook wb = new HSSFWorkbook();      
  468.      
  469.     HSSFSheet s = wb.createSheet();      
  470.      
  471.     HSSFRow r = null;      
  472.      
  473.     HSSFCell c = null;      
  474.      
  475.     HSSFCellStyle cs = wb.createCellStyle();      
  476.      
  477.     HSSFFont f = wb.createFont();      
  478.      
  479.     HSSFFont f2 = wb.createFont();      
  480.      
  481.     cs = wb.createCellStyle();      
  482.      
  483.     cs.setFont( f2 );      
  484.      
  485.     //Word Wrap MUST be turned on      
  486.      
  487.     cs.setWrapText( true );      
  488.      
  489.     r = s.createRow( (short2 );      
  490.      
  491.     r.setHeight( (short0x349 );      
  492.      
  493.     c = r.createCell( (short2 );      
  494.      
  495.     c.setCellType( HSSFCell.CELL_TYPE_STRING );      
  496.      
  497.     c.setCellValue( "Use \n with word wrap on to create a new line" );      
  498.      
  499.     c.setCellStyle( cs );      
  500.      
  501.     s.setColumnWidth( (short2, (short) ( ( 50 * 8 ) / ( (double1 / 20 ) ) );      
  502.      
  503.     FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );      
  504.      
  505.     wb.write( fileOut );      
  506.      
  507.     fileOut.close();      
  508.      
  509. 14.数字格式自定义      
  510.      
  511.     HSSFWorkbook wb = new HSSFWorkbook();      
  512.      
  513.     HSSFSheet sheet = wb.createSheet("format sheet");      
  514.      
  515.     HSSFCellStyle style;      
  516.      
  517.     HSSFDataFormat format = wb.createDataFormat();      
  518.      
  519.     HSSFRow row;      
  520.      
  521.     HSSFCell cell;      
  522.      
  523.     short rowNum = 0;      
  524.      
  525.     short colNum = 0;      
  526.      
  527.     row = sheet.createRow(rowNum++);      
  528.      
  529.     cell = row.createCell(colNum);      
  530.      
  531.     cell.setCellValue(11111.25);      
  532.      
  533.     style = wb.createCellStyle();      
  534.      
  535.     style.setDataFormat(format.getFormat("0.0"));      
  536.      
  537.     cell.setCellStyle(style);      
  538.      
  539.     row = sheet.createRow(rowNum++);      
  540.      
  541.     cell = row.createCell(colNum);      
  542.      
  543.     cell.setCellValue(11111.25);      
  544.      
  545.     style = wb.createCellStyle();      
  546.      
  547.     style.setDataFormat(format.getFormat("#,##0.0000"));      
  548.      
  549.     cell.setCellStyle(style);      
  550.      
  551.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  552.      
  553.     wb.write(fileOut);      
  554.      
  555.     fileOut.close();      
  556.      
  557. 15.调整工作单位置      
  558.      
  559.     HSSFWorkbook wb = new HSSFWorkbook();      
  560.      
  561.     HSSFSheet sheet = wb.createSheet("format sheet");      
  562.      
  563.     HSSFPrintSetup ps = sheet.getPrintSetup();      
  564.      
  565.     sheet.setAutobreaks(true);      
  566.      
  567.     ps.setFitHeight((short)1);      
  568.      
  569.     ps.setFitWidth((short)1);       
  570.      
  571.      
  572.      
  573.     // Create various cells and rows for spreadsheet.      
  574.      
  575.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  576.      
  577.     wb.write(fileOut);      
  578.      
  579.     fileOut.close();      
  580.      
  581. 16.设置打印区域      
  582.      
  583.     HSSFWorkbook wb = new HSSFWorkbook();      
  584.      
  585.     HSSFSheet sheet = wb.createSheet("Sheet1");      
  586.      
  587.     wb.setPrintArea(0"$A$1:$C$2");      
  588.      
  589.     //sets the print area for the first sheet      
  590.      
  591.     //Alternatively:      
  592.      
  593.     //wb.setPrintArea(0, 0, 1, 0, 0) is equivalent to using the name reference (See the JavaDocs for more details)      
  594.      
  595.     // Create various cells and rows for spreadsheet.      
  596.      
  597.     FileOutputStream fileOut = new FileOutputStream("workbook.xls");      
  598.      
  599.     wb.write(fileOut);      
  600.      
  601.     fileOut.close();      
  602.      
  603. 17.标注脚注      
  604.      
  605.     HSSFWorkbook wb = new HSSFWorkbook();      
  606.      
  607.     HSSFSheet sheet = wb.createSheet("format sheet");      
  608.      
  609.     HSSFFooter footer = sheet.getFooter()      
  610.      
  611.     footer.setRight( <s

你可能感兴趣的:(C++,c,Excel,C#,FreeBSD)