亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

POI操作Excel常用方法總結

2019-11-11 04:20:06
字體:
來源:轉載
供稿:網友


一、 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常用對象           

[c-sharp] view plaincopyPOIFSFileSystem fs=newPOIFSFileSystem(new FileInputStream("d:/test.xls"));   //得到Excel工作簿對象   HSSFWorkbook wb = new HSSFWorkbook(fs);  //得到Excel工作表對象   HSSFSheet sheet = wb.getSheetAt(0);   //得到Excel工作表的行   HSSFRow row = sheet.getRow(i);  //得到Excel工作表指定行的單元格   HSSFCell cell = row.getCell((short) j);  cellStyle = cell.getCellStyle();//得到單元格樣式  

 2、建立Excel常用對象[c-sharp] view plaincopyHSSFWorkbook wb = new HSSFWorkbook();//創建Excel工作簿對象  HSSFSheet sheet = wb.createSheet("new sheet");//創建Excel工作表對象    HSSFRow row = sheet.createRow((short)0); //創建Excel工作表的行  cellStyle = wb.createCellStyle();//創建單元格樣式  row.createCell((short)0).setCellStyle(cellStyle); //創建Excel工作表指定行的單元格  row.createCell((short)0).setCellValue(1); //設置Excel工作表的值  

3、設置sheet名稱和單元格內容[c-sharp] view plaincopywb.setSheetName(1, "第一張工作表",HSSFCell.ENCODING_UTF_16);          cell.setEncoding((short) 1);      cell.setCellValue("單元格內容");  
4、取得sheet的數目 [c-sharp] view plaincopywb.getNumberOfSheets()   
5、  據index取得sheet對象[c-sharp] view plaincopyHSSFSheet sheet = wb.getSheetAt(0);  
6、取得有效的行數[c-sharp] view plaincopyint rowcount = sheet.getLastRowNum();  
7、取得一行的有效單元格個數[c-sharp] view plaincopyrow.getLastCellNum();    

8、單元格值類型讀寫

[c-sharp] view plaincopycell.setCellType(HSSFCell.CELL_TYPE_STRING); //設置單元格為STRING類型  cell.getNumericCellValue();//讀取為數值類型的單元格內容  

 

9、設置列寬、行高

[c-sharp] view plaincopysheet.setColumnWidth((short)column,(short)width);      row.setHeight((short)height);    

 

10、添加區域,合并單元格

[c-sharp] view plaincopyRegion region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo  ,(short)columnTo);//合并從第rowFrom行columnFrom列  sheet.addMergedRegion(region);// 到rowTo行columnTo的區域     //得到所有區域      sheet.getNumMergedRegions()   

 

11、保存Excel文件

[c-sharp] view plaincopyFileOutputStream fileOut = new FileOutputStream(path);   wb.write(fileOut);   

 

12、根據單元格不同屬性返回字符串數值

[c-sharp] view plaincopypublic String getCellStringValue(HSSFCell cell) {              String cellValue = "";              switch (cell.getCellType()) {              case HSSFCell.CELL_TYPE_STRING://字符串類型              cellValue = cell.getStringCellValue();                  if(cellValue.trim().equals("")||cellValue.trim().length()<=0)                      cellValue=" ";                  break;              case HSSFCell.CELL_TYPE_NUMERIC: //數值類型              cellValue = String.valueOf(cell.getNumericCellValue());                  break;              case HSSFCell.CELL_TYPE_FORMULA: //公式              cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);                  cellValue = String.valueOf(cell.getNumericCellValue());                  break;              case HSSFCell.CELL_TYPE_BLANK:                  cellValue=" ";                  break;              case HSSFCell.CELL_TYPE_BOOLEAN:                  break;              case HSSFCell.CELL_TYPE_ERROR:                  break;              default:                  break;              }              return cellValue;          }     

 

13、常用單元格邊框格式

[c-sharp] view plaincopyHSSFCellStyle style = wb.createCellStyle();      style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下邊框       style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左邊框       style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框       style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框    

 

14、設置字體和內容位置

[c-sharp] view plaincopyHSSFFont f  = wb.createFont();      f.setFontHeightInPoints((short) 11);//字號      f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗      style.setFont(f);      style.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中      style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中      style.setRotation(short rotation);//單元格內容的旋轉的角度      HSSFDataFormat df = wb.createDataFormat();      style1.setDataFormat(df.getFormat("0.00%"));//設置單元格數據格式      cell.setCellFormula(string);//給單元格設公式      style.setRotation(short rotation);//單元格內容的旋轉的角度   

 

15、插入圖片

[c-sharp] view plaincopy//先把讀進來的圖片放到一個ByteArrayOutputStream中,以便產生ByteArray            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();            BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));            ImageIO.write(bufferImg,"jpg",byteArrayOut);      //讀進一個excel模版      FileInputStream fos = new FileInputStream(filePathName+"/stencil.xlt");       fs = new POIFSFileSystem(fos);      //創建一個工作薄      HSSFWorkbook wb = new HSSFWorkbook(fs);      HSSFSheet sheet = wb.getSheetAt(0);      HSSFPatriarch patriarch = sheet.createDrawingPatriarch();      HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,1023,255,(short) 0,0,(short)10,10);           patriarch.createPicture(anchor , wb.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));    

 

16、調整工作表位置

[c-sharp] view plaincopyHSSFWorkbook wb = new HSSFWorkbook();     HSSFSheet sheet = wb.createSheet("format sheet");     HSSFPrintSetup ps = sheet.getPrintSetup();     sheet.setAutobreaks(true);     ps.setFitHeight((short)1);     ps.setFitWidth((short)1);     

 

17、設置打印區域

[c-sharp] view plaincopyHSSFSheet sheet = wb.createSheet("Sheet1");     wb.setPrintArea(0, "$A$1:$C$2");    

 

18、標注腳注

[c-sharp] view plaincopyHSSFSheet sheet = wb.createSheet("format sheet");     HSSFFooter footer = sheet.getFooter()     footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );   

 

19、在工作單中清空行數據,調整行位置

[c-sharp] view plaincopyHSSFWorkbook 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);    

 

20、選中指定的工作表

[c-sharp] view plaincopyHSSFSheet sheet = wb.createSheet("row sheet");     heet.setSelected(true);     

 

21、工作表的放大縮小

 

[c-sharp] view plaincopyHSSFSheet sheet1 = wb.createSheet("new sheet");     sheet1.setZoom(1,2);   // 50 percent magnification    

 

22、頭注和腳注

[c-sharp] view plaincopyHSSFSheet 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");  

 

23、自定義顏色

[c-sharp] view plaincopyHSSFCellStyle 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);     

24、填充和顏色設置

[c-sharp] view plaincopyHSSFCellStyle style = wb.createCellStyle();     style.setFillBackgroundColor(HSSFColor.AQUA.index);     style.setFillPattern(HSSFCellStyle.BIG_SPOTS);     HSSFCell cell = row.createCell((short) 1);     cell.setCellValue("X");     style = wb.createCellStyle();     style.setFillForegroundColor(HSSFColor.ORANGE.index);     style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);     cell.setCellStyle(style);   

25、強行刷新單元格公式

[c-sharp] view plaincopyHSSFFormulaEvaluator eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);    private static void updateFormula(Workbook wb,Sheet s,int row){             Row r=s.getRow(row);             Cell c=null;             FormulaEcaluator eval=null;             if(wb instanceof HSSFWorkbook)                 eval=new HSSFFormulaEvaluator((HSSFWorkbook) wb);             else if(wb instanceof XSSFWorkbook)                 eval=new XSSFFormulaEvaluator((XSSFWorkbook) wb);             for(int i=r.getFirstCellNum();i<r.getLastCellNum();i++){                 c=r.getCell(i);                 if(c.getCellType()==Cell.CELL_TYPE_FORMULA)                     eval.evaluateFormulaCell(c);             }         }    

說明:FormulaEvaluator提供了evaluateFormulaCell(Cell cell)方法,計算公式保存結果,但不改變公式。而evaluateInCell(Cell cell) 方法是計算公式,并將原公式替換為計算結果,也就是說該單元格的類型不在是Cell.CELL_TYPE_FORMULA而是Cell.CELL_TYPE_NUMBERIC。HSSFFormulaEvaluator提供了靜態方法evaluateAllFormu

laCells(HSSFWorkbook wb) ,計算一個Excel文件的所有公式,用起來很方便


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品色蜜蜜精品视频在线观看| 日韩精品极品在线观看播放免费视频| 操日韩av在线电影| 国产亚洲欧美视频| 成人信息集中地欧美| 国产精品久久久久久av下载红粉| 中文国产成人精品| 91久久精品视频| 亚洲欧美日韩图片| 亚洲图片欧美日产| 日韩av手机在线观看| 国产精品69久久久久| 97精品视频在线观看| 欧美日韩免费网站| 久久综合亚洲社区| 狠狠躁夜夜躁久久躁别揉| 精品一区电影国产| 国产精品日韩电影| www.日韩不卡电影av| 欧美午夜激情小视频| 亚洲国产又黄又爽女人高潮的| 91人人爽人人爽人人精88v| 国产日韩综合一区二区性色av| 一夜七次郎国产精品亚洲| 精品美女永久免费视频| 日本精品久久久久影院| 久久国产精彩视频| 2019中文字幕在线观看| 亚洲二区在线播放视频| 亚洲电影免费在线观看| 久精品免费视频| 亚洲成人久久一区| 热久久免费视频精品| 国产精品极品尤物在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 精品中文字幕在线| 欧美在线观看www| 中文字幕日韩在线播放| 国产69精品久久久久99| 日韩在线观看你懂的| 国产欧美一区二区三区视频| 国产成人avxxxxx在线看| 日韩精品亚洲元码| 国产日韩欧美另类| 精品国产自在精品国产浪潮| 欧美一级在线亚洲天堂| 69影院欧美专区视频| 久久影视电视剧免费网站清宫辞电视| 日韩一中文字幕| 国产欧美精品xxxx另类| 日本在线精品视频| 国产精品高潮呻吟久久av野狼| 91精品综合视频| 亚洲欧美中文日韩在线v日本| 伊是香蕉大人久久| 欧美国产日产韩国视频| 亚洲国产另类 国产精品国产免费| 日韩有码在线播放| 成人国产精品久久久| 欧美激情视频一区二区三区不卡| 色哟哟亚洲精品一区二区| 精品电影在线观看| 国产免费一区二区三区在线能观看| 91在线直播亚洲| 日韩欧美在线中文字幕| 成人免费在线视频网址| 日韩一中文字幕| 国产欧美在线看| 亚洲精品动漫100p| 国产一区二区香蕉| 亚洲美女av网站| 亚洲第一区第二区| 国产精品三级美女白浆呻吟| 亚洲石原莉奈一区二区在线观看| 欧美日本中文字幕| 欧美一级高清免费| 黑人巨大精品欧美一区二区一视频| 亚洲国产精品久久| 日韩h在线观看| 成人福利网站在线观看| 亚洲在线免费看| 在线电影中文日韩| 国产精品久久久久久久久免费看| 成人春色激情网| 97视频人免费观看| 日韩av免费在线观看| 久久久国产视频| 日韩精品中文在线观看| 国外视频精品毛片| 欧美裸体xxxx极品少妇软件| 久久久av免费| 国产成人精品视频| 亚洲三级黄色在线观看| 亚洲一区二区自拍| 久久视频这里只有精品| 日韩国产高清视频在线| 久久天天躁狠狠躁夜夜爽蜜月| 成人有码视频在线播放| 国产免费一区二区三区香蕉精| 久久人人爽人人| 中文日韩在线观看| 久久91精品国产91久久跳| 国产精品成人观看视频国产奇米| 日韩在线资源网| 6080yy精品一区二区三区| 亚洲**2019国产| 欧美性在线观看| 色爱av美腿丝袜综合粉嫩av| 色哟哟亚洲精品一区二区| 国产深夜精品福利| 欧美丰满少妇xxxxx做受| 久久成人综合视频| 亚洲二区在线播放视频| 久久精品免费播放| 亚洲免费福利视频| 91在线观看免费高清| 欧美午夜激情在线| 色综合天天狠天天透天天伊人| 成人午夜在线观看| 中文字幕免费精品一区高清| 成人综合网网址| 亚洲三级 欧美三级| 日韩欧美成人网| 精品性高朝久久久久久久| 少妇高潮 亚洲精品| 久久久免费电影| 免费91麻豆精品国产自产在线观看| 日本精品一区二区三区在线| 日韩电影免费观看在线观看| 国产亚洲美女精品久久久| 国产日韩中文在线| 国产精品入口尤物| 91欧美精品午夜性色福利在线| 亚洲va国产va天堂va久久| 亚洲精品v欧美精品v日韩精品| 欧美激情aaaa| 国产精品美女在线| 日韩高清电影免费观看完整版| 日韩美女在线观看| 久久99精品久久久久久琪琪| 久久久亚洲国产天美传媒修理工| 国产精品视频1区| 成人激情春色网| 欧美激情18p| 97国产精品免费视频| 欧美日韩在线第一页| 伊人久久久久久久久久久久久| 亚洲福利在线观看| 亚洲网站在线播放| 中文字幕欧美日韩在线| 国产色婷婷国产综合在线理论片a| 中文字幕国内精品| 日韩亚洲欧美中文在线| 亚洲日本欧美中文幕| 92看片淫黄大片看国产片| 亚洲va国产va天堂va久久| 国产免费一区二区三区在线观看| 久久精品国产久精国产一老狼| 日韩欧美在线视频| 久久精品美女视频网站| 日韩成人网免费视频| 欧美极品少妇xxxxx| 亚洲999一在线观看www| 欧美另类精品xxxx孕妇|