国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java讀寫Excel之POI超入門

2019-11-06 08:16:17
字體:
來源:轉載
供稿:網友

java讀寫Excel之POI超入門

Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。 Apache POI 是創建和維護操作各種符合Office Open xml(OOXML)標準和微軟的OLE 2復合文檔格式(OLE2)的Java API。用它可以使用Java讀取和創建,修改MS Excel文件.而且,還可以使用Java讀取和創建MS Word和MSPowerpoint文件。Apache POI 提供Java操作Excel解決方案(適用于Excel97-2008)。 如果處理.xlsx、docx、PPTx的話可以試試Docx4j 。 Docx4j is a Java library for creating and manipulating Microsoft Open XML (Word docx, Powerpoint pptx, and Excel xlsx) files. 

HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能。XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能。HWPF - 提供讀寫Microsoft Word DOC格式檔案的功能。HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。HDGF - 提供讀Microsoft Visio格式檔案的功能。HPBF - 提供讀Microsoft Publisher格式檔案的功能。HSMF - 提供讀Microsoft Outlook格式檔案的功能。http://poi.apache.org/ Busy Developers' Guide to HSSF and XSSF Features 版本:poi-3.8-20120326.jar 1、生成Workbook Java代碼  收藏代碼//生成Workbook  HSSFWorkbook wb = new HSSFWorkbook();    //添加Worksheet(不添加sheet時生成的xls文件打開時會報錯)  @SupPRessWarnings("unused")  Sheet sheet1 = wb.createSheet();  @SuppressWarnings("unused")  Sheet sheet2 = wb.createSheet();  @SuppressWarnings("unused")  Sheet sheet3 = wb.createSheet("new sheet");  @SuppressWarnings("unused")  Sheet sheet4 = wb.createSheet("rensanning");    //保存為Excel文件  FileOutputStream out = null;    try {      out = new FileOutputStream("c://text.xls");      wb.write(out);        } catch (IOException e) {      System.out.println(e.toString());  } finally {      try {          out.close();      } catch (IOException e) {          System.out.println(e.toString());      }  }     2、生成Workbook OOXML形式(.xlsx) Java代碼  收藏代碼//生成Workbook  XSSFWorkbook wb = new XSSFWorkbook();    //......  3、打開Workbook Java代碼  收藏代碼//方法一:使用WorkbookFactory  FileInputStream in = null;  Workbook wb = null;    try {      in = new FileInputStream(TEST_WORKBOOK_NAME);      wb = WorkbookFactory.create(in);  } catch (IOException e) {      System.out.println(e.toString());  } catch (InvalidFormatException e) {      System.out.println(e.toString());  } finally {      try {          in.close();      } catch (IOException e) {          System.out.println(e.toString());      }  }    System.out.println("====================Workbook====================");  System.out.println("Number of Sheets:" + wb.getNumberOfSheets());  System.out.println("Sheet3's name:" + wb.getSheetName(3));  System.out.println();    //方法二:使用POIFSFileSystem  try {      in = new FileInputStream(TEST_WORKBOOK_NAME);      POIFSFileSystem fs = new POIFSFileSystem(in);      wb = new HSSFWorkbook(fs);  } catch (IOException e) {      System.out.println(e.toString());  } finally {      try {          in.close();      } catch (IOException e) {          System.out.println(e.toString());      }  }    System.out.println("====================Workbook====================");  System.out.println("Number of Sheets:" + wb.getNumberOfSheets());  System.out.println("Sheet3's name:" + wb.getSheetName(3));  System.out.println();  4、打開加密的Workbook(讀加密) Java代碼  收藏代碼FileInputStream input = new FileInputStream(TEST_WORKBOOK_NAME_ENCRYPTED);  BufferedInputStream binput = new BufferedInputStream(input);  POIFSFileSystem poifs = new POIFSFileSystem(binput);    Biff8EncryptionKey.setCurrentUserPassword(TEST_WORKBOOK_PASSWORD);    HSSFWorkbook wb = new HSSFWorkbook(poifs);    System.out.println("====================EncryptedWorkbook====================");  System.out.println("Number of Sheets:" + wb.getNumberOfSheets());  System.out.println("Sheet0's name:" + wb.getSheetName(0));  System.out.println();  5、追加Sheet Java代碼  收藏代碼Sheet sheet = wb.createSheet("append sheet");  6、復制Sheet Java代碼  收藏代碼wb.cloneSheet(1);  7、修改Sheet名稱 Java代碼  收藏代碼wb.setSheetName(i, "SheetName new");  8、刪除Sheet Java代碼  收藏代碼wb.removeSheetAt(1);  9、設置下部Sheet名的Tab的第一個可見Tab Java代碼  收藏代碼//設置下部Sheet名的Tab的第一個可見Tab(以左的Sheet看不見)  wb.setFirstVisibleTab(2);  10、調整Sheet順序 Java代碼  收藏代碼wb.setSheetOrder("SheetName3", 1);  wb.setSheetOrder(wb.getSheetName(4), 0);  11、設置當前Sheet t.setActiveSheet(); Java代碼  收藏代碼//設置當前Sheet  wb.setActiveSheet(wb.getNumberOfSheets() - 1);  //(Excel的當前Sheet被設置,需要結合setSelected使用,不然下部Sheet名的Tab還是默認為第一個)  //(需要選擇多個Sheet的話,每個Sheet調用setSelected(true)即可)  wb.getSheetAt(wb.getNumberOfSheets() - 1).setSelected(true);  12、固定窗口 Java代碼  收藏代碼wb.getSheet("SheetName4").createFreezePane(2, 2);   13、分割窗口 Java代碼  收藏代碼wb.getSheet("SheetName5").createSplitPane(2000, 2000, 0, 0, HSSFSheet.PANE_LOWER_LEFT);   14、Sheet縮放 Java代碼  收藏代碼//setZoom(int numerator, int denominator)  //"numerator"÷"denominator"  例如: 3÷1=3 那就是設置為300%    //擴大(200%)  wb.getSheet("sheetname1").setZoom(2, 1);  //縮小(50%)  wb.getSheet("sheetname2").setZoom(1, 2);   15、行列分組 Java代碼  收藏代碼wb.getSheet("sheetname3").groupColumn(4, 7);  wb.getSheet("sheetname3").groupColumn(9, 12);  wb.getSheet("sheetname3").groupColumn(10, 11);    wb.getSheet("sheetname3").groupRow(5, 14);  wb.getSheet("sheetname3").groupRow(7, 13);  wb.getSheet("sheetname3").groupRow(16, 19);  16、關閉分組 Java代碼  收藏代碼wb.getSheet("sheetname3").setColumnGroupCollapsed(10, true);  wb.getSheet("sheetname3").setRowGroupCollapsed(7, true);  17、插入行 Java代碼  收藏代碼Row row1 = wb.getSheet("sheetname4").createRow(1);  Cell cell1_1 = row1.createCell(1);  cell1_1.setCellValue(123);    Row row4 = wb.getSheet("sheetname4").createRow(4);  Cell cell4_3 = row4.createCell(3);  cell4_3.setCellValue("中國");  18、刪除行 Java代碼  收藏代碼Row row = wb.getSheet("sheetname4").getRow(1);  wb.getSheet("sheetname4").removeRow(row);  19、移動行 Java代碼  收藏代碼//******移動行只移動內容,不牽扯行的刪除和插入    //移動行(把第1行和第2行移到第5行之后)  wb.getSheet("sheetname5").shiftRows(0, 1, 5);    //移動行(把第3行和第4行往上移動1行)  wb.getSheet("sheetname5").shiftRows(2, 3, -1);  20、修改行高 Java代碼  收藏代碼//設置默認行高  wb.getSheet("sheetname6").setDefaultRowHeight((short)100);    //設置行高  wb.getSheet("sheetname6").getRow(2).setHeight((short)(100 * 20));  21、修改列寬 Java代碼  收藏代碼//設置默認列寬  wb.getSheet("sheetname7").setDefaultColumnWidth(12);    //設置列寬  wb.getSheet("sheetname7").setColumnWidth(0, 5 * 256);  22、不顯示網格線 Java代碼  收藏代碼//不顯示網格線  wb.getSheet("sheetname8").setDisplayGridlines(false);   23、設置分頁 Java代碼  收藏代碼//設置第一頁:3行2列 (可以多次設置)  wb.getSheet("sheetname9").setRowBreak(2);  wb.getSheet("sheetname9").setColumnBreak(1);   24、添加,刪除,合并單元格 Java代碼  收藏代碼//追加行  for (int i = 0; i < 10; i++) {      Row row = wb.getSheet("sheetname10").createRow(i);      for (int j = 0; j < 10; j++) {          //添加單元格          Cell cell = row.createCell(j);          cell.setCellValue(i + 1);      }            //刪除單元格      row.removeCell(row.getCell(5));  }            //合并單元格  //CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)  wb.getSheet("sheetname10").addMergedRegion(new CellRangeAddress(1, 4, 2, 3));   25、設置Header,Footer Java代碼  收藏代碼//Header  Header header = wb.getSheet("sheetname11").getHeader();  header.setLeft(HSSFHeader.startUnderline() +          HSSFHeader.font("宋體", "Italic") +          "文字文字" +          HSSFHeader.endUnderline());  header.setCenter(HSSFHeader.fontSize((short)16) +          HSSFHeader.startDoubleUnderline() +          HSSFHeader.startBold() +          "漢字漢字" +          HSSFHeader.endBold() +          HSSFHeader.endDoubleUnderline());  header.setRight("打印時間:" + HSSFHeader.date() +  " " + HSSFHeader.time());    //Footer  Footer footer = wb.getSheet("sheetname11").getFooter();  footer.setLeft("Copyright @ rensanning");  footer.setCenter("Page:" + HSSFFooter.page() + " / " + HSSFFooter.numPages());  footer.setRight("File:" + HSSFFooter.file());    26、設置單元格值 Java代碼  收藏代碼//boolean  Cell cell00 = rows[0].createCell(0);  boolean val00 = true;  cell00.setCellValue(val00);    //Calendar 格式化  CellStyle styleCalendar = wb.createCellStyle();  DataFormat formatCalendar = wb.createDataFormat();  styleCalendar.setDataFormat(formatCalendar.getFormat("yyyy/mm/dd"));  Cell cell11 = rows[1].createCell(0);  Calendar val11 = Calendar.getInstance();  cell11.setCellStyle(styleCalendar);  cell11.setCellValue(val11);    //Date 格式化  CellStyle styleDate = wb.createCellStyle();  DataFormat formatDate = wb.createDataFormat();  styleDate.setDataFormat(formatDate.getFormat("yyyy/mm/dd hh:mm"));  Cell cell21 = rows[2].createCell(0);  Date val21 = new Date();  cell21.setCellStyle(styleDate);  cell21.setCellValue(val21);    //double  Cell cell30 = rows[3].createCell(0);  double val30 = 1234.56;  cell30.setCellValue(val30);    //double 格式化  CellStyle styleDouble = wb.createCellStyle();  DataFormat formatDouble = wb.createDataFormat();  styleDouble.setDataFormat(formatDouble.getFormat("#,##0.00"));  Cell cell31 = rows[3].createCell(1);  double val31 = 1234.56;  cell31.setCellStyle(styleDouble);  cell31.setCellValue(val31);    //String  Cell cell40 = rows[4].createCell(0);  HSSFRichTextString val40 = new HSSFRichTextString("Test漢字");  cell40.setCellValue(val40);   27、設置單元格邊線 Java代碼  收藏代碼wb.getSheet("sheetname2").setColumnWidth(1, 4096);    Row row1 = wb.getSheet("sheetname2").createRow(1);  row1.setHeightInPoints(70);    Cell cell1_1 = row1.createCell(1);  cell1_1.setCellValue("Sample");    CellStyle style = wb.createCellStyle();    style.setBorderTop(CellStyle.BORDER_DASHED);  style.setBorderBottom(CellStyle.BORDER_DOUBLE);  style.setBorderLeft(CellStyle.BORDER_MEDIUM_DASH_DOT);  style.setBorderRight(CellStyle.BORDER_MEDIUM);    style.setTopBorderColor(IndexedColors.MAROON.getIndex());  style.setBottomBorderColor(IndexedColors.SKY_BLUE.getIndex());  style.setLeftBorderColor(IndexedColors.ORANGE.getIndex());  style.setRightBorderColor(IndexedColors.BLUE_GREY.getIndex());    cell1_1.setCellStyle(style);   28、設置單元格背景填充 Java代碼  收藏代碼wb.getSheet("sheetname3").setColumnWidth(0, 4096);  wb.getSheet("sheetname3").setColumnWidth(1, 4096);  wb.getSheet("sheetname3").setColumnWidth(2, 4096);    Row row1 = wb.getSheet("sheetname3").createRow(1);  row1.setHeightInPoints(70);    Cell cell1_0 = row1.createCell(0);  Cell cell1_1 = row1.createCell(1);  Cell cell1_2 = row1.createCell(2);    cell1_0.setCellValue("THIN_VERT_BANDS");  cell1_1.setCellValue("BIG_SPOTS");  cell1_2.setCellValue("THICK_HORZ_BANDS");    CellStyle style1 = wb.createCellStyle();  style1.setFillPattern(CellStyle.THIN_VERT_BANDS);  style1.setFillForegroundColor(IndexedColors.WHITE.getIndex());  style1.setFillBackgroundColor(IndexedColors.BLUE.getIndex());    CellStyle style2 = wb.createCellStyle();  style2.setFillPattern(CellStyle.BIG_SPOTS);  style2.setFillForegroundColor(IndexedColors.RED.getIndex());  style2.setFillBackgroundColor(IndexedColors.WHITE.getIndex());    CellStyle style3 = wb.createCellStyle();  style3.setFillPattern(CellStyle.THICK_HORZ_BANDS);  style3.setFillForegroundColor(IndexedColors.PINK.getIndex());  style3.setFillBackgroundColor(IndexedColors.BROWN.getIndex());    cell1_0.setCellStyle(style1);  cell1_1.setCellStyle(style2);  cell1_2.setCellStyle(style3);   29、設置單元格注釋 Java代碼  收藏代碼HSSFCreationHelper createHelper =      (HSSFCreationHelper)wb.getCreationHelper();  Drawing patriarch = wb.getSheet("sheetname4").createDrawingPatriarch();    //注釋  Row row = wb.getSheet("sheetname4").createRow(1);  Cell cell = row.createCell(1);    HSSFClientAnchor clientAnchor = new HSSFClientAnchor(0, 0, 0, 0,          (short) 4, 2, (short) 6, 5);    Comment comment = patriarch.createCellComment(clientAnchor);  comment.setString(createHelper.createRichTextString("注釋注釋111"));  comment.setAuthor("rensanning");    cell.setCellComment(comment);    //帶字體的注釋  Row row2 = wb.getSheet("sheetname4").createRow(2);  Cell cell2 = row2.createCell(1);    Font font = wb.createFont();  font.setFontName("宋體");  font.setFontHeightInPoints((short)10);  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  font.setColor(HSSFColor.RED.index);    Comment comment2 = patriarch.createCellComment(clientAnchor);  HSSFRichTextString text = new HSSFRichTextString("注釋注釋222");  text.applyFont(font);  comment2.setString(text);  comment2.setAuthor("rensanning");    cell2.setCellComment(comment2);  30、設置單元格字體(斜體,粗體,下線,取消線,字體,大小,背景色) Java代碼  收藏代碼Font font = null;  CellStyle style = null;    //斜體  font = wb.createFont();  font.setItalic(true);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(1).getCell(1).setCellStyle(style);    //粗體  font = wb.createFont();  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(2).getCell(1).setCellStyle(style);    //字體名  font = wb.createFont();  font.setFontName("Courier New");  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(3).getCell(1).setCellStyle(style);    //字體大小  font = wb.createFont();  font.setFontHeightInPoints((short)20);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(4).getCell(1).setCellStyle(style);    //文字顏色  font = wb.createFont();  font.setColor(HSSFColor.YELLOW.index);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(5).getCell(1).setCellStyle(style);            //上標  font = wb.createFont();  font.setTypeOffset(HSSFFont.SS_SUPER);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(6).getCell(1).setCellStyle(style);    //下標  font = wb.createFont();  font.setTypeOffset(HSSFFont.SS_SUB);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(7).getCell(1).setCellStyle(style);    //刪除線  font = wb.createFont();  font.setStrikeout(true);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(8).getCell(1).setCellStyle(style);    //下劃線  font = wb.createFont();  font.setUnderline(HSSFFont.U_SINGLE);  style = wb.createCellStyle();  style.setFont(font);    wb.getSheet("sheetname5").getRow(9).getCell(1).setCellStyle(style);    //背景色  style = wb.createCellStyle();  style.setFillForegroundColor(HSSFColor.SEA_GREEN.index);  style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);    style.setFont(font);    wb.getSheet("sheetname5").getRow(10).getCell(1).setCellStyle(style);   31、設置超鏈接 Java代碼  收藏代碼HSSFCreationHelper createHelper =      (HSSFCreationHelper)wb.getCreationHelper();    CellStyle style = wb.createCellStyle();  Font font = wb.createFont();  font.setUnderline(HSSFFont.U_SINGLE);  font.setColor(HSSFColor.BLUE.index);  style.setFont(font);            //追加行  Row[] rows = new Row[10];  for (int i = 0; i < 10; i++) {      rows[i] = wb.getSheet("sheetname6").createRow(i);  }    //URL  rows[0].createCell(0).setCellValue("URL Link");    HSSFHyperlink link1 = createHelper.createHyperlink(HSSFHyperlink.LINK_URL);  link1.setAddress("http://poi.apache.org/");  rows[0].getCell(0).setHyperlink(link1);  rows[0].getCell(0).setCellStyle(style);    //Mail  rows[1].createCell(0).setCellValue("Email Link");    HSSFHyperlink link2 = createHelper.createHyperlink(HSSFHyperlink.LINK_EMAIL);  link2.setAddress("mailto:poi@apache.org?subject=Hyperlinks");  rows[1].getCell(0).setHyperlink(link2);  rows[1].getCell(0).setCellStyle(style);    //File  rows[2].createCell(0).setCellValue("File Link");    HSSFHyperlink link3 = createHelper.createHyperlink(HSSFHyperlink.LINK_FILE);  link3.setAddress("link.xls");  rows[2].getCell(0).setHyperlink(link3);  rows[2].getCell(0).setCellStyle(style);    //Workbook內  rows[3].createCell(0).setCellValue("Worksheet Link");    HSSFHyperlink link4 = createHelper.createHyperlink(HSSFHyperlink.LINK_DOCUMENT);  link4.setAddress("sheetname1!A1");  rows[3].getCell(0).setHyperlink(link4);  rows[3].getCell(0).setCellStyle(style);  32、設置單元格橫向對齊,縱向對齊 Java代碼  收藏代碼//橫向對齊  wb.getSheet("sheetname7").setColumnWidth(2, 3072);    Row[] row = new Row[7];  Cell[] cell = new Cell[7];    for (int i = 0 ; i < 7 ; i++){    row[i] = wb.getSheet("sheetname7").createRow(i + 1);    cell[i] = row[i].createCell(2);    cell[i].setCellValue("Please give me a receipt");  }    CellStyle style0 = wb.createCellStyle();  style0.setAlignment(CellStyle.ALIGN_GENERAL);  cell[0].setCellStyle(style0);    CellStyle style1 = wb.createCellStyle();  style1.setAlignment(CellStyle.ALIGN_LEFT);  cell[1].setCellStyle(style1);    CellStyle style2 = wb.createCellStyle();  style2.setAlignment(CellStyle.ALIGN_CENTER);  cell[2].setCellStyle(style2);    CellStyle style3 = wb.createCellStyle();  style3.setAlignment(CellStyle.ALIGN_RIGHT);  cell[3].setCellStyle(style3);    CellStyle style4 = wb.createCellStyle();  style4.setAlignment(CellStyle.ALIGN_FILL);  cell[4].setCellStyle(style4);    CellStyle style5 = wb.createCellStyle();  style5.setAlignment(CellStyle.ALIGN_JUSTIFY);  cell[5].setCellStyle(style5);    CellStyle style6 = wb.createCellStyle();  style6.setAlignment(CellStyle.ALIGN_CENTER_SELECTION);  cell[6].setCellStyle(style6);    //縱向對齊  Row row2 = wb.getSheet("sheetname8").createRow(1);  row2.setHeightInPoints(70);  Cell[] cell2 = new Cell[4];    for (int i = 0 ; i < 4 ; i++){      cell2[i] = row2.createCell(i + 1);      cell2[i].setCellValue("Please give me a receipt");  }    CellStyle style02 = wb.createCellStyle();  style02.setVerticalAlignment(CellStyle.VERTICAL_TOP);  cell2[0].setCellStyle(style02);    CellStyle style12 = wb.createCellStyle();  style12.setVerticalAlignment(CellStyle.VERTICAL_CENTER);  cell2[1].setCellStyle(style12);    CellStyle style22 = wb.createCellStyle();  style22.setVerticalAlignment(CellStyle.VERTICAL_BOTTOM);  cell2[2].setCellStyle(style22);    CellStyle style32 = wb.createCellStyle();  style32.setVerticalAlignment(CellStyle.VERTICAL_JUSTIFY);  cell2[3].setCellStyle(style32);   33、設置單元格旋轉角度 Java代碼  收藏代碼Row[] row = new Row[4];  Cell[] cell = new Cell[4];    for (int i = 0 ; i < 4 ; i++){    row[i] = wb.getSheet("sheetname9").createRow(i + 1);    cell[i] = row[i].createCell(2);    cell[i].setCellValue("Coffee");  }    CellStyle style0 = wb.createCellStyle();  style0.setRotation((short)45);  cell[0].setCellStyle(style0);    CellStyle style1 = wb.createCellStyle();  style1.setRotation((short)0);  cell[1].setCellStyle(style1);    CellStyle style2 = wb.createCellStyle();  style2.setRotation((short)-45);  cell[2].setCellStyle(style2);    CellStyle style3 = wb.createCellStyle();  style3.setRotation((short)-90);  cell[3].setCellStyle(style3);   34、設置單元格自動折行 Java代碼  收藏代碼Row[] row = new Row[2];  Cell[] cell = new Cell[2];    for (int i = 0 ; i < 2 ; i++){    row[i] = wb.getSheet("sheetname10").createRow(i + 1);    cell[i] = row[i].createCell(2);    cell[i].setCellValue("Thank you very much.");  }    CellStyle style0 = wb.createCellStyle();  style0.setWrapText(true);  cell[0].setCellStyle(style0);    CellStyle style1 = wb.createCellStyle();  style1.setWrapText(false);  cell[1].setCellStyle(style1);   35、設置單元格文字縮進 Java代碼  收藏代碼Row[] row = new Row[4];  Cell[] cell = new Cell[4];    for (int i = 0 ; i < 4 ; i++){    row[i] = wb.getSheet("sheetname11").createRow(i + 1);    cell[i] = row[i].createCell(2);    cell[i].setCellValue("Coffee");  }    CellStyle style1 = wb.createCellStyle();  style1.setIndention((short)1);  style1.setAlignment(CellStyle.ALIGN_LEFT);  cell[1].setCellStyle(style1);    CellStyle style2 = wb.createCellStyle();  style2.setIndention((short)2);  style2.setAlignment(CellStyle.ALIGN_LEFT);  cell[2].setCellStyle(style2);    CellStyle style3 = wb.createCellStyle();  style3.setIndention((short)3);  style3.setAlignment(CellStyle.ALIGN_LEFT);  cell[3].setCellStyle(style3);   36、自定義格式 Java代碼  收藏代碼Row[] rows = new Row[2];  for (int i = 0; i < rows.length; i++) {      rows[i] = wb.getSheet("sheetname12").createRow(i + 1);  }  DataFormat format = wb.createDataFormat();    CellStyle[] styles = new CellStyle[2];  for (int i = 0; i < styles.length; i++) {      styles[i] = wb.createCellStyle();  }  styles[0].setDataFormat(format.getFormat("0.0"));  styles[1].setDataFormat(format.getFormat("#,##0.000"));    Cell[] cells = new Cell[2];  for (int i = 0; i < cells.length; i++)  {      cells[i] = rows[i].createCell(1);      cells[i].setCellValue(1111.25);        cells[i].setCellStyle(styles[i]);  }   37、設置公式 Java代碼  收藏代碼Row row1 = wb.getSheet("sheetname13").createRow(1);  Row row2 = wb.getSheet("sheetname13").createRow(2);    Cell cell1_1 = row1.createCell(1);  Cell cell1_2 = row1.createCell(2);  Cell cell1_3 = row1.createCell(3);  Cell cell2_3 = row2.createCell(3);    cell1_1.setCellValue(30);  cell1_2.setCellValue(25);  cell1_3.setCellFormula("B2+C2");  cell2_3.setCellFormula("MOD(B2,C2)");   38、畫直線,圓圈(橢圓),正方形(長方形),Textbox Java代碼  收藏代碼HSSFPatriarch patriarch = ((HSSFSheet)wb.getSheet("sheetname14")).createDrawingPatriarch();    //直線  HSSFClientAnchor clientAnchor1 = new HSSFClientAnchor(0, 0, 0, 0,          (short) 4, 2, (short) 6, 5);  HSSFSimpleShape shape1 = patriarch.createSimpleShape(clientAnchor1);  shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);    //圓圈(橢圓)  HSSFClientAnchor clientAnchor2 = new HSSFClientAnchor(0, 0, 0, 0,          (short) 8, 4, (short) 6, 5);  HSSFSimpleShape shape2 = patriarch.createSimpleShape(clientAnchor2);  shape2.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);    //正方形(長方形)  HSSFClientAnchor clientAnchor3 = new HSSFClientAnchor(0, 0, 0, 0,          (short) 12, 6, (short) 6, 5);  HSSFSimpleShape shape3 = patriarch.createSimpleShape(clientAnchor3);  shape3.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);    //Textbox  HSSFClientAnchor clientAnchor4 = new HSSFClientAnchor(0, 0, 0, 0,          (short) 14, 8, (short) 6, 5);  HSSFTextbox textbox = patriarch.createTextbox(clientAnchor4);  textbox.setString(new HSSFRichTextString("This is a test"));  39、插入圖片 Java代碼  收藏代碼//需要commons-codec-1.6.jar  FileInputStream jpeg = new FileInputStream("resource/test.jpg");  byte[] bytes = IOUtils.toByteArray(jpeg);  int pictureIndex = wb.addPicture(bytes, HSSFWorkbook.PICTURE_TYPE_JPEG);  jpeg.close();    HSSFCreationHelper helper = (HSSFCreationHelper) wb.getCreationHelper();    HSSFPatriarch patriarch = ((HSSFSheet)wb.getSheet("sheetname15")).createDrawingPatriarch();    HSSFClientAnchor clientAnchor = helper.createClientAnchor();    clientAnchor.setCol1(3);  clientAnchor.setRow1(2);    HSSFPicture picture = patriarch.createPicture(clientAnchor, pictureIndex);  picture.resize();   40、設置可輸入List Java代碼  收藏代碼CellRangeAddressList addressList = new CellRangeAddressList(          0,          0,          0,          0);    final String[] DATA_LIST = new String[] {          "10",          "20",          "30",  };  DVConstraint dvConstraint =      DVConstraint.createExplicitListConstraint(DATA_LIST);    HSSFDataValidation dataValidation = new HSSFDataValidation(addressList, dvConstraint);  dataValidation.setSuppressDropDownArrow(false);    wb.getSheet("sheetname16").addValidationData(dataValidation);   41、設置輸入提示信息 Java代碼  收藏代碼CellRangeAddressList addressList = new CellRangeAddressList(          0,          0,          0,          0);    final String[] DATA_LIST = new String[] {          "10",          "20",          "30",  };  DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(DATA_LIST);    HSSFDataValidation dataValidation =      new HSSFDataValidation(addressList, dvConstraint);  dataValidation.setSuppressDropDownArrow(false);  dataValidation.createPromptBox("輸入提示", "請從下拉列表中選擇!");  dataValidation.setShowPromptBox(true);    wb.getSheet("sheetname17").addValidationData(dataValidation);  

 

POItest.part1.rar (6 MB)下載次數: 157POItest.part2.rar (4 MB)下載次數: 135查看圖片附件


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合作市| 金平| 东城区| 平山县| 河曲县| 宽城| 武隆县| 德惠市| 竹山县| 青川县| 合川市| 炎陵县| 林芝县| 崇左市| 灵丘县| 台北县| 屏山县| 瑞金市| 锦州市| 两当县| 民县| 彰化县| 西平县| 文山县| 乐清市| 县级市| 合阳县| 孙吴县| 武隆县| 柳州市| 读书| 塘沽区| 馆陶县| 张北县| 惠水县| 咸宁市| 英吉沙县| 宁化县| 彭泽县| 大关县| 邢台市|