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

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

POI操作Excel常用方法總結

2019-11-11 06:19:14
字體:
來源:轉載
供稿:網友


一、 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文件的所有公式,用起來很方便


上一篇:LELE的RPG難題

下一篇:qt protobuf使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线看欧美日韩| 国产精品69久久| 精品国产1区2区| 日韩大陆欧美高清视频区| 久久中文字幕在线视频| 欧美夫妻性生活xx| 欧美成人午夜激情在线| 91美女片黄在线观看游戏| 精品高清一区二区三区| 国产成人免费av电影| 国内精品400部情侣激情| 精品国产1区2区| 日韩av大片在线| 精品国产区一区二区三区在线观看| 搡老女人一区二区三区视频tv| 性欧美亚洲xxxx乳在线观看| 国产欧美亚洲视频| 2025国产精品视频| 亚洲国产精品久久久久| 蜜臀久久99精品久久久久久宅男| 美日韩精品免费观看视频| 精品福利免费观看| 尤物精品国产第一福利三区| 亚洲国产毛片完整版| 亚洲欧美日韩久久久久久| 国产精品免费久久久久影院| 亚洲国产高清高潮精品美女| 国内精品久久影院| 欧美日韩成人免费| 97涩涩爰在线观看亚洲| 亚洲一区中文字幕在线观看| 九色91av视频| 欧美激情亚洲激情| 日韩中文字幕亚洲| 亚洲视频欧洲视频| 亚洲第一男人天堂| 精品久久久久久久久久久久| 国产精品黄页免费高清在线观看| 色悠久久久久综合先锋影音下载| 亚洲欧美日韩一区二区三区在线| 久久综合色影院| 亚洲美女又黄又爽在线观看| 亚洲人成电影网站色www| 亚洲电影免费观看高清| 欧美福利视频网站| 国产精品精品一区二区三区午夜版| 欧美成人剧情片在线观看| 中文字幕视频一区二区在线有码| 日韩精品在线观看网站| 欧美在线视频一区二区| 69视频在线免费观看| 久久久久久97| 色老头一区二区三区在线观看| 亚洲风情亚aⅴ在线发布| 91精品在线看| 欧美日韩在线一区| 一级做a爰片久久毛片美女图片| 久久成人精品一区二区三区| 欧美一区二粉嫩精品国产一线天| 45www国产精品网站| 欧美在线视频观看| 91精品久久久久久久久久久| 欧美一级成年大片在线观看| 性欧美视频videos6一9| www.日韩视频| 国产精品久久久久av| 一区二区三区无码高清视频| 欧美激情亚洲一区| 亚洲男人天堂手机在线| 久久精品成人欧美大片古装| 亚洲精品欧美极品| 国产亚洲欧洲黄色| 亚洲精品日产aⅴ| 亚洲国产一区二区三区四区| 青青在线视频一区二区三区| 欧美一级大胆视频| 国产亚洲精品久久久| 亚洲国产精品久久久久秋霞蜜臀| 中文字幕亚洲一区二区三区五十路| 国产欧美精品久久久| 欧美激情精品久久久久久久变态| 久久精品国产2020观看福利| 91欧美视频网站| 久久久久在线观看| 亚洲欧美日本另类| 久久999免费视频| 色哟哟入口国产精品| 日韩在线视频免费观看高清中文| 欧美中文字幕在线观看| 国产视频亚洲视频| 亚洲无av在线中文字幕| 亚洲人午夜精品免费| 国产精品久久久久秋霞鲁丝| 国产福利成人在线| 欧美在线视频观看| 欧美一区二区大胆人体摄影专业网站| 久久久久一本一区二区青青蜜月| 亚洲日韩中文字幕在线播放| 97视频人免费观看| 久久精品中文字幕电影| 亚洲精品一区久久久久久| 91久久精品国产91久久| 成人福利视频在线观看| 欧美激情亚洲激情| 欧美www视频在线观看| 免费成人高清视频| 亚洲免费视频观看| 国产精品露脸自拍| 欧美精品电影免费在线观看| 免费97视频在线精品国自产拍| 91手机视频在线观看| 日韩国产在线看| 欧美性受xxxx黑人猛交| 日韩电影免费观看中文字幕| 国产精品一区av| 欧美日韩中国免费专区在线看| 日韩电视剧在线观看免费网站| 91久久久久久| 欧美一级淫片丝袜脚交| 日韩激情在线视频| 日韩免费在线免费观看| 4k岛国日韩精品**专区| 午夜精品久久久久久久99热| 国产一区二区三区精品久久久| 中文字幕在线日韩| 欧美精品免费看| 欧美成年人在线观看| 亚洲第一福利视频| 久久久久久久久爱| 欧美夜福利tv在线| 国产精品视频精品| 精品国产欧美一区二区三区成人| 亚洲专区在线视频| 精品无码久久久久久国产| 日韩欧美在线中文字幕| 亚洲一区二区免费| 一区二区三区视频免费| 亚洲天堂男人天堂女人天堂| 亚洲天堂精品在线| 久久影院资源站| 国产精品第七十二页| 亚洲欧美国产va在线影院| 日韩亚洲欧美中文在线| 久久免费国产视频| 一区二区三区视频在线| 搡老女人一区二区三区视频tv| 久久综合久久88| 成人激情视频在线观看| 欧美一级免费视频| 国产一区二区三区视频| 欧美激情奇米色| 精品久久久久久中文字幕大豆网| 欧美整片在线观看| 亚洲深夜福利网站| 欧洲中文字幕国产精品| 欧美精品少妇videofree| 亚洲嫩模很污视频| 日韩精品欧美激情| 久久久女人电视剧免费播放下载| 97超级碰碰碰久久久| 日韩美女福利视频| 久久69精品久久久久久久电影好| 日韩在线中文字| 日韩av资源在线播放|