中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Apache-HSSF 對文檔的修改讀取及寫入是怎么樣的

發布時間:2021-10-20 17:00:21 來源:億速云 閱讀:135 作者:柒染 欄目:大數據

Apache-HSSF 對文檔的修改讀取及寫入是怎么樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、HSSF概述

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

二、poi excel文檔結構

  • HSSFWorkbook           excel文檔對象

  • HSSFSheet                   excel的sheet

  • HSSFName                   名稱

  • HSSFHeader                 sheet的頭

  • HSSFRowexcel 的行

  • HSSFFooter                 sheet的尾

  • HSSFCell                     excel的單元格

  • HSSFCellStyle             cell的樣式

  • HSSFFont                    excel 字體

  • HSSFDataFormat        日期格式

三、導入excel

//excel文件位置
String readfilePath=“f:\\2019-04-23 22_53_44____.xls”;

//創建對excel文件的引用
HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(readfilePath))

//獲取sheet   第一個
HSSFSheet sheet=workbook. getSheetAt(0);

//獲取其中一行cell
HSSFRow row=sheet.getRow(1);

//獲取行結束位置
int colCount=sheet.getRow(0).getLastCellNum();
//遍歷
for(int j=1;j<colCount;j++) {
    row.getCell(j).setCellType(CellType.STRING);
    System.out.println(j+"::"+row.getCell(j).getStringCellValue());
}

常用api導入

//獲取sheet數目
Int sheetCount=workbook.getNumberOfSheets();

//取得有效行數
Int rowCount=sheet.getLastRowNum();

//獲得一行有效單元格個數
Int cellCount=row.getLastCellNum();

//值類型讀寫
cell.setCellType(HSSFCell.CELL_TYPE_STRING); //設置單元格為STRING類型   
cell.getNumericCellValue();//讀取為數值類型的單元格內容 
/*
讀取注意cell是什么類型 string or  數值
*/

四、導出excel

//設置excel存放文件位置
public static String writefilePath=“f:\\test.xls”;
//創建excel文件
HSSFWorkbook workbook=new HSSFWorkbook();
//創建sheet   第一個
HSSFSheet sheet=workbook. createSheet("創建的第一個sheet");
//創建一行cell
HSSFRow row=sheet.createRow(0);
//模擬數據在一行顯示
String[] testTitle={"課程","學期","院系","開課院系","專業","班級"};
//遍歷生成一行cell
for(int j=0;j<testTitle.length;j++) {
row.createCell(j).setCellValue(testTitle[j]);
}
//文件輸出
FileOutputStream output=new FileOutputStream(writefilePath);
workbook.write(output);
output.flush();
output.close();

導出excel常用api

//1.設置列寬,行高
  sheet.setColumnWidth((short)column,(short)width);      
  row.setHeight((short)height); 
//2.添加區域,合并單元格
  Region region = new Region(rowFrom,columnFrom,rowTo  ,columnTo);
//合并從第rowFrom行columnFrom列   
  sheet.addMergedRegion(region);// 到rowTo行columnTo的區域      
//得到所有區域       
  sheet.getNumMergedRegions()
//3.設置單元格邊框格式
  HSSFCellStyle style = wb.createCellStyle();      
  style.setBorderBottom(HSSFCellStyle.BORDER_DOTTED);//下邊框        
  style.setBorderLeft(HSSFCellStyle.BORDER_DOTTED);//左邊框        
  style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框        
  style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框 
//單元格的合并 
  sheet.addMergedRegion(new CellRangeAddress(0, 4, 0, 2));本示例為合并4行2列 
//4、設置字體和內容位置
   HSSFFont f  = wb.createFont();      
  		 f.setFontHeightInPoints((short) 11);//字號       
		   f.setBold(true);//加粗       
		   style.setFont(f);      
		  style.setAlignment(HorizontalAlignment.CENTER);   
   HSSFDataFormat df = wb.createDataFormat();      
   style1.setDataFormat(df.getFormat("0.00%"));//設置單元格數據格式       
   cell.setCellFormula(string);//給單元格設公式       
   style.setRotation(short rotation);//單元格內容的旋轉的角度 

//5.對角線設置 通過畫線的方式
   HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
   HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 255, (short)7, 0, (short)7, 2);
   HSSFShapeGroup group = patriarch.createGroup(a);
   group.setCoordinates(0, 0, 320, 276);
   float verticalPointsPerPixel = a.getAnchorHeightInPoints(sheet) / Math.abs(group.getY2() - group.getY1());
   EscherGraphics g = new EscherGraphics(group, workbook, Color.black, verticalPointsPerPixel);
   EscherGraphics2d g2d = new EscherGraphics2d(g);
   g2d.drawLine(0, 0, 320, 276);
//6、插入圖片
   HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
//插入圖片
   ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();      
   BufferedImage bufferImg = ImageIO.read(new File("f:\\downloadfile-14.jpg"));      
   ImageIO.write(bufferImg,"jpg",byteArrayOut); 


//設置位置       
   HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, 
                (short) 0, 0, (short) 11, 11); 
     // 插入圖片  
        patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(),    HSSFWorkbook.PICTURE_TYPE_JPEG)); 

 // 6.創建頁眉和頁腳
  HSSFSheet sheet = workbook.createSheet("Test");// 創建工作表(Sheet) 
  HSSFHeader header =sheet.getHeader();//得到頁眉 
  header.setLeft("頁眉左邊"); 
  header.setRight("頁眉右邊"); 
  header.setCenter("頁眉中間"); 
  HSSFFooter footer =sheet.getFooter();//得到頁腳 
  footer.setLeft("頁腳左邊"); 
  footer.setRight("頁腳右邊"); 
  footer.setCenter("頁腳中間");

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南康市| 大名县| 行唐县| 含山县| 宾川县| 绥德县| 同仁县| 香港| 建始县| 上杭县| 高邮市| 眉山市| 禹城市| 潜山县| 客服| 井冈山市| 来安县| 佳木斯市| 九江县| 乾安县| 资源县| 揭西县| 常德市| 湟中县| 雷州市| 石景山区| 东兰县| 咸宁市| 腾冲县| 潜山县| 乾安县| 奈曼旗| 调兵山市| 大埔区| 金昌市| 嘉峪关市| 上杭县| 共和县| 安顺市| 阳高县| 湘乡市|