您好,登錄后才能下訂單哦!
Apache-HSSF 對文檔的修改讀取及寫入是怎么樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
HSSF 是Horrible SpreadSheet Format的縮寫,通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。
HSSFWorkbook excel文檔對象
HSSFSheet excel的sheet
HSSFName 名稱
HSSFHeader sheet的頭
HSSFRowexcel 的行
HSSFFooter sheet的尾
HSSFCell excel的單元格
HSSFCellStyle cell的樣式
HSSFFont excel 字體
HSSFDataFormat 日期格式
//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()); }
//獲取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存放文件位置 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();
//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("頁腳中間");
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。