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

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

POI操作Excel常用方法總結

2019-11-11 04:52:54
字體:
來源:轉載
供稿:網友


一、 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
久久艹在线视频| 亚洲美女久久久| 日韩免费电影在线观看| 日韩精品在线私人| 欧美激情精品久久久久久大尺度| 97视频在线观看视频免费视频| 91嫩草在线视频| 国产精品白嫩初高中害羞小美女| 成人精品在线观看| 国产精品久久久久久久久久久久| 久久精品久久久久久国产 免费| 亚洲级视频在线观看免费1级| 午夜欧美不卡精品aaaaa| 国产在线视频一区| 日韩免费av片在线观看| 国产精品视频内| 欧美激情手机在线视频| 亚洲网站在线观看| 欧美激情小视频| 久久久综合免费视频| 亚洲成人精品久久| 欧美性jizz18性欧美| 国产精品久久久久久久app| 自拍偷拍亚洲一区| 欧美麻豆久久久久久中文| 国产亚洲精品久久久久动| 91精品免费久久久久久久久| 国产不卡精品视男人的天堂| 91在线中文字幕| 国产九九精品视频| 久久人人爽人人爽人人片av高清| 一本大道香蕉久在线播放29| 精品在线欧美视频| 国产成人午夜视频网址| 欧美日韩亚洲国产一区| 亚洲国产欧美一区二区三区同亚洲| 亚洲男人天堂手机在线| 国产精品精品久久久| 欧美中文字幕精品| 亚洲人成电影网站| 日韩欧美国产成人| 欧美大成色www永久网站婷| 热re91久久精品国99热蜜臀| 久久精品国产一区二区三区| 日本欧美一级片| 欧美激情精品久久久久久| 欧美视频一区二区三区…| 国产在线精品播放| 在线亚洲国产精品网| 欧美精品在线极品| 亚洲成人在线视频播放| 国产成人啪精品视频免费网| 精品免费在线视频| 久久色在线播放| 97在线看免费观看视频在线观看| 中文字幕日韩综合av| 欧美国产日韩免费| 91在线观看欧美日韩| 国内精品一区二区三区四区| 欧美性xxxxxxx| 久久久久久久999精品视频| 亚洲精品网站在线播放gif| 国产精品视频免费在线观看| 久久久视频免费观看| 国产美女扒开尿口久久久| 亚洲最大成人在线| 欧美怡春院一区二区三区| 国产成人在线视频| 亚洲精品视频网上网址在线观看| 欧美日韩中文在线| 日韩精品中文字幕在线播放| 国产精品久久久久久久久免费看| 久久久久一本一区二区青青蜜月| 尤物九九久久国产精品的分类| 成人性生交大片免费看视频直播| 国产亚洲精品激情久久| 日韩av综合中文字幕| 国产精品精品视频一区二区三区| 国产又爽又黄的激情精品视频| 欧美午夜精品久久久久久浪潮| 91大神福利视频在线| 欧美午夜片在线免费观看| 亚洲精品福利在线| 日韩精品中文在线观看| 欧美精品久久久久久久免费观看| 欧美日韩国产精品专区| 国产视频观看一区| 欧美大片免费观看| 欧美日韩福利视频| 色99之美女主播在线视频| 久久艳片www.17c.com| 国产精品露脸自拍| 久久久这里只有精品视频| 欧美国产日韩在线| 最近2019中文字幕mv免费看| 国产aaa精品| 日韩精品999| 国产亚洲欧美日韩精品| 色吧影院999| 亚洲色图偷窥自拍| 国产99久久精品一区二区永久免费| 欧美日韩在线影院| 日韩中文字在线| 亚洲欧美制服中文字幕| 精品亚洲一区二区三区在线观看| 欧美一级在线亚洲天堂| 久久精品国产亚洲精品2020| 精品国内产的精品视频在线观看| 92裸体在线视频网站| 2019亚洲日韩新视频| 久久精品成人动漫| 国产九九精品视频| 亚洲jizzjizz日本少妇| 91久久久亚洲精品| 亚洲国产黄色片| 91久久精品久久国产性色也91| 狠狠综合久久av一区二区小说| 日韩欧美亚洲综合| 日韩欧美成人精品| 日韩电影免费在线观看中文字幕| 国产综合在线看| 欧美夫妻性视频| 欧美精品18videos性欧美| 国产精品久久久久一区二区| 欧美成人精品不卡视频在线观看| 亚洲福利精品在线| 欧美成人免费在线视频| 亚洲免费伊人电影在线观看av| 日韩av大片免费看| 这里只有精品在线播放| 韩国视频理论视频久久| 亚洲日本aⅴ片在线观看香蕉| 欧美电影在线观看| 亚洲999一在线观看www| 亚洲bt天天射| 国产一区二区三区毛片| 亚洲男人av在线| 亚洲丁香婷深爱综合| 色偷偷av一区二区三区乱| 91亚洲永久免费精品| 国产在线观看精品| 中文日韩电影网站| 国产欧美精品在线播放| 欧美日韩午夜剧场| 亚洲第一av网站| 国产精品第三页| 欧美精品一本久久男人的天堂| 中文字幕亚洲字幕| 92福利视频午夜1000合集在线观看| 91在线视频免费| 国产精选久久久久久| 亚洲精品自产拍| 91精品国产综合久久久久久久久| 国产午夜精品视频| 国产精品中文字幕在线观看| 久久精视频免费在线久久完整在线看| 久久久国产精品免费| 中文字幕亚洲一区二区三区五十路| 精品视频www| 亚洲片av在线| 国产女人18毛片水18精品| 欧美性高潮在线| 国产精品久久久久久亚洲影视| 色妞久久福利网|