设为首页 收藏本站
查看: 736|回复: 0

[经验分享] Java之Excel操作 Apache POI

[复制链接]

尚未签到

发表于 2017-1-7 09:28:33 | 显示全部楼层 |阅读模式
  转自:http://blog.csdn.net/vacblog/article/details/8237674
  下载地址:http://poi.apache.org/ 
  Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能。

  • 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格式档案的功能。
  操作:
  生成Workbook : HSSFWorkbook wb = new HSSFWorkbook();  
  添加Worksheet(不添加sheet时生成的xls文件打开时会错):Sheet sheet3 = wb.createSheet("new sheet");
  保存为Excel文件: out = new FileOutputStream("c:\\text.xls");   wb.write(out);
  打开Workbook:
    方法一:
        in = new FileInputStream(TEST_WORKBOOK_NAME);
        Workbook  wb = WorkbookFactory.create(in);
    方法二:

  • in = new FileInputStream(TEST_WORKBOOK_NAME);  
  •     POIFSFileSystem fs = new POIFSFileSystem(in);  
  •     wb = new HSSFWorkbook(fs); 
  打开加密的Workbook(读加密) 

  • 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();  
  复制Sheet :wb.cloneSheet(1);
  修改Sheet名称:wb.setSheetName(i, "SheetName new"); 
  删除Sheet: wb.removeSheetAt(1);  
  调整Sheet顺序 :

Java代码   DSC0000.png


  • wb.setSheetOrder("SheetName3"1);  
  • wb.setSheetOrder(wb.getSheetName(4), 0); 

  设置当前Sheet:  t.setActiveSheet(); 
       或: wb.getSheetAt(wb.getNumberOfSheets() - 1).setSelected(true);  
  固定窗口 :wb.getSheet("SheetName4").createFreezePane(22);
DSC0001.gif  

  分割窗口
  wb.getSheet("SheetName5").createSplitPane(2000200000, HSSFSheet.PANE_LOWER_LEFT);  
DSC0002.gif  

  Sheet缩放 :

  • //扩大(200%)  
  • wb.getSheet("sheetname1").setZoom(21);  
  • //缩小(50%)  
  • wb.getSheet("sheetname2").setZoom(12);  
  不显示网格线 

Java代码  


  • //不显示网格线  
  • wb.getSheet("sheetname8").setDisplayGridlines(false);  

  
DSC0003.gif  

23、设置分页 

Java代码  


  • //设置第一页:3行2列 (可以多次设置)  
  • wb.getSheet("sheetname9").setRowBreak(2);  
  • wb.getSheet("sheetname9").setColumnBreak(1);  

  
DSC0004.gif  

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(1423));  

  
DSC0005.gif  

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());  

  
DSC0006.gif  
DSC0007.gif  

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);  

  
DSC0008.gif  

27、设置单元格边线 

Java代码  


  • wb.getSheet("sheetname2").setColumnWidth(14096);  
  •   
  • 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);  

  
DSC0009.gif  

28、设置单元格背景填充 

Java代码  


  • wb.getSheet("sheetname3").setColumnWidth(04096);  
  • wb.getSheet("sheetname3").setColumnWidth(14096);  
  • wb.getSheet("sheetname3").setColumnWidth(24096);  
  •   
  • 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);  

  
DSC00010.gif  

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(0000,  
  •         (short42, (short65);  
  •   
  • 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);  

  
DSC00011.gif  

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 = 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(23072);  
  •   
  • Row[] row = new Row[7];  
  • Cell[] cell = new Cell[7];  
  •   
  • for (int i = 0 ; i < 7 ; i++){  
  •   row = wb.getSheet("sheetname7").createRow(i + 1);  
  •   cell = row.createCell(2);  
  •   cell.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 = row2.createCell(i + 1);  
  •     cell2.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);  

  
DSC00012.gif  

33、设置单元格旋转角度 

Java代码  


  • Row[] row = new Row[4];  
  • Cell[] cell = new Cell[4];  
  •   
  • for (int i = 0 ; i < 4 ; i++){  
  •   row = wb.getSheet("sheetname9").createRow(i + 1);  
  •   cell = row.createCell(2);  
  •   cell.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);  

  
DSC00013.gif  

34、设置单元格自动折行 

Java代码  


  • Row[] row = new Row[2];  
  • Cell[] cell = new Cell[2];  
  •   
  • for (int i = 0 ; i < 2 ; i++){  
  •   row = wb.getSheet("sheetname10").createRow(i + 1);  
  •   cell = row.createCell(2);  
  •   cell.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);  

  
DSC00014.gif  

35、设置单元格文字缩进 

Java代码  


  • Row[] row = new Row[4];  
  • Cell[] cell = new Cell[4];  
  •   
  • for (int i = 0 ; i < 4 ; i++){  
  •   row = wb.getSheet("sheetname11").createRow(i + 1);  
  •   cell = row.createCell(2);  
  •   cell.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);  

  
DSC00015.gif  

36、自定义格式 

Java代码  


  • Row[] rows = new Row[2];  
  • for (int i = 0; i < rows.length; i++) {  
  •     rows = wb.getSheet("sheetname12").createRow(i + 1);  
  • }  
  • DataFormat format = wb.createDataFormat();  
  •   
  • CellStyle[] styles = new CellStyle[2];  
  • for (int i = 0; i < styles.length; i++) {  
  •     styles = 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 = rows.createCell(1);  
  •     cells.setCellValue(1111.25);  
  •   
  •     cells.setCellStyle(styles);  
  • }  

  
DSC00016.gif  

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)");  

  
DSC00017.gif  

38、画直线,圆圈(椭圆),正方形(长方形),Textbox 

Java代码  


  • HSSFPatriarch patriarch = ((HSSFSheet)wb.getSheet("sheetname14")).createDrawingPatriarch();  
  •   
  • //直线  
  • HSSFClientAnchor clientAnchor1 = new HSSFClientAnchor(0000,  
  •         (short42, (short65);  
  • HSSFSimpleShape shape1 = patriarch.createSimpleShape(clientAnchor1);  
  • shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);  
  •   
  • //圆圈(椭圆)  
  • HSSFClientAnchor clientAnchor2 = new HSSFClientAnchor(0000,  
  •         (short84, (short65);  
  • HSSFSimpleShape shape2 = patriarch.createSimpleShape(clientAnchor2);  
  • shape2.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);  
  •   
  • //正方形(长方形)  
  • HSSFClientAnchor clientAnchor3 = new HSSFClientAnchor(0000,  
  •         (short126, (short65);  
  • HSSFSimpleShape shape3 = patriarch.createSimpleShape(clientAnchor3);  
  • shape3.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);  
  •   
  • //Textbox  
  • HSSFClientAnchor clientAnchor4 = new HSSFClientAnchor(0000,  
  •         (short148, (short65);  
  • 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();  

  
DSC00018.gif  

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);  

  
DSC00019.gif  

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);  

  
DSC00020.gif  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324945-1-1.html 上篇帖子: Apache Java项目全介绍(转) 下篇帖子: Apache HTTP Server 2.0 安装和配置记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表