大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java中文API文檔之POI

Java中文API文檔之POI

更新時間:2021-09-27 10:37:05 來源:動力節(jié)點 瀏覽1392次

Java中文API文檔是Java學(xué)習(xí)中不可缺少的,POI就是其中之一,下面小編就來給大家做詳細(xì)介紹。

1.POI簡介

Apache POI是Apache軟件基金會的開放源碼函式庫,POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能。

2.HSSF概況

HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。

3. POI EXCEL文檔結(jié)構(gòu)類

HSSFWorkbook excel文檔對象

HSSFSheet excel的sheet HSSFRow excel的行

HSSFCell excel的單元格 HSSFFont excel字體

HSSFName 名稱 HSSFDataFormat 日期格式

HSSFHeader sheet頭

HSSFFooter sheet尾

HSSFCellStyle cell樣式

HSSFDateUtil 日期

HSSFPrintSetup 打印

HSSFErrorConstants 錯誤信息表

4.EXCEL常用操作方法

(1)得到Excel常用對象

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

HSSFWorkbook wb = new HSSFWorkbook();//創(chuàng)建Excel工作簿對象   
HSSFSheet sheet = wb.createSheet("new sheet");//創(chuàng)建Excel工作表對象     
HSSFRow row = sheet.createRow((short)0); //創(chuàng)建Excel工作表的行   
cellStyle = wb.createCellStyle();//創(chuàng)建單元格樣式   
row.createCell((short)0).setCellStyle(cellStyle); //創(chuàng)建Excel工作表指定行的單元格   
row.createCell((short)0).setCellValue(1); //設(shè)置Excel工作表的值  

(3)設(shè)置sheet名稱和單元格內(nèi)容

wb.setSheetName(1, "第一張工作表",HSSFCell.ENCODING_UTF_16);          
cell.setEncoding((short) 1);      
cell.setCellValue("單元格內(nèi)容");  

(4)取得sheet的數(shù)目

wb.getNumberOfSheets()   

(5)根據(jù)index取得sheet對象

HSSFSheet sheet = wb.getSheetAt(0);  

(6)取得有效的行數(shù)

int rowcount = sheet.getLastRowNum();  

(7)取得一行的有效單元格個數(shù)

row.getLastCellNum();    

(8)單元格值類型讀寫

cell.setCellType(HSSFCell.CELL_TYPE_STRING); //設(shè)置單元格為STRING類型   
cell.getNumericCellValue();//讀取為數(shù)值類型的單元格內(nèi)容  

(9)設(shè)置列寬、行高

sheet.setColumnWidth((short)column,(short)width);      
row.setHeight((short)height);    

(10)添加區(qū)域,合并單元格

Region region = new Region((short)rowFrom,(short)columnFrom,(short)rowTo  
,(short)columnTo);//合并從第rowFrom行columnFrom列   
sheet.addMergedRegion(region);// 到rowTo行columnTo的區(qū)域      
//得到所有區(qū)域       
sheet.getNumMergedRegions()   

(11)保存Excel文件

FileOutputStream fileOut = new FileOutputStream(path);   
wb.write(fileOut);   

(12)根據(jù)單元格不同屬性返回字符串?dāng)?shù)值

public 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: //數(shù)值類型   
            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)常用單元格邊框格式

HSSFCellStyle style = wb.createCellStyle();      
style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下邊框        
style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左邊框        
style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框        
style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框    

(14)設(shè)置字體和內(nèi)容位置

HSSFFont 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);//單元格內(nèi)容的旋轉(zhuǎn)的角度       
HSSFDataFormat df = wb.createDataFormat();      
style1.setDataFormat(df.getFormat("0.00%"));//設(shè)置單元格數(shù)據(jù)格式       
cell.setCellFormula(string);//給單元格設(shè)公式       
style.setRotation(short rotation);//單元格內(nèi)容的旋轉(zhuǎn)的角度   

(15)插入圖片

//先把讀進(jìn)來的圖片放到一個ByteArrayOutputStream中,以便產(chǎn)生ByteArray       
      ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();      
      BufferedImage bufferImg = ImageIO.read(new File("ok.jpg"));      
      ImageIO.write(bufferImg,"jpg",byteArrayOut);      
//讀進(jìn)一個excel模版       
FileInputStream fos = new FileInputStream(filePathName+"/stencil.xlt");       
fs = new POIFSFileSystem(fos);      
//創(chuàng)建一個工作薄       
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)調(diào)整工作表位置

HSSFWorkbook 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)設(shè)置打印區(qū)域

HSSFSheet sheet = wb.createSheet("Sheet1");     
wb.setPrintArea(0, "$A$1:$C$2");   

(18)標(biāo)注腳注

HSSFSheet sheet = wb.createSheet("format sheet");     
HSSFFooter footer = sheet.getFooter()     
footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );   

(19)在工作單中清空行數(shù)據(jù),調(diào)整行位置

HSSFWorkbook 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)選中指定的工作表

HSSFSheet sheet = wb.createSheet("row sheet");     
heet.setSelected(true);     

(21)工作表的放大縮小

HSSFSheet sheet1 = wb.createSheet("new sheet");     
sheet1.setZoom(1,2);   // 50 percent magnification    

(22)頭注和腳注

HSSFSheet 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)自定義顏色

HSSFCellStyle 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)填充和顏色設(shè)置

HSSFCellStyle 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)強行刷新單元格公式

HSSFFormulaEvaluator 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
            c=r.getCell(i);     
            if(c.getCellType()==Cell.CELL_TYPE_FORMULA)     
                eval.evaluateFormulaCell(c);     
        }     
    }    

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

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

Java中文API文檔有很多,大家想了解更多相關(guān)信息,不妨來關(guān)注一下動力節(jié)點的Java API文檔,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 免费毛片网 | 日本不卡免费在线 | 久久国产精品久久国产片 | 免费观看一级特黄欧美大片 | 香蕉欧美 | 日本一级一片免在线观看 | 女人牲交视频一级毛片 | 欧美成人免费看片一区 | 中文字幕一区在线播放 | 精品免费国产一区二区女 | 四虎国产精品免费久久影院 | 日韩免费毛片视频 | b毛片 | 成人午夜影视全部免费看 | 亚洲在线一区二区 | 男人天堂a| 综合婷婷| 久久在线精品视频 | 九七97影院理论片手机在线观看 | 成人区精品一区二区毛片不卡 | 日本国产一区二区三区 | 亚洲高清中文字幕一区二区三区 | 国产精品伦理一区二区三区 | 天天骑天天射 | 久久乱码精品区中文字幕 | 一级毛片视频在线 | 免费国产成人高清在线观看麻豆 | 手机在线看片国产日韩生活片 | 日本一级淫一片免费 | 亚洲一区二区观看 | 成人深夜视频在线观看 | 奇米影视第四色在线观看 | 婷婷在线成人免费观看搜索 | 免费香蕉一区二区在线观看 | 欧美日韩国产精品 | 奇米视频在线 | 午夜亚洲| 国产日产久久 | 免费黄视频网站 | www.日本一区二区 | 欧美狠狠 |