日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java poi 设置公式_poi公式处理

發布時間:2024/9/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java poi 设置公式_poi公式处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設置單元格樣式

HSSFCellStyle類代表一種單元格樣式。可以通過這個類來設置單元格的邊框樣式、背景顏色、字體、水平和垂直對齊方式等等。

HSSFCellStyle titleStyle = workbook.createCellStyle();

titleStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE);

titleStyle.setBorderLeft((short)1);

titleStyle.setBorderRight((short)1);

titleStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE);

titleStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);

titleStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

注意:如果我們定義了一種樣式,把它賦給一些單元格。然后基于新的需要,更改該樣式中的某個屬性,再賦給另一些單元格。那么之前單元格樣式的該屬性也會被同時更改。

比如我們定義了樣式,設置單元格背景色為紅色:

HSSFCellStyle cellStyle = workbook.createCellStyle();

cellStyle.setFillForegroundColor(HSSFColor.RED.index);

cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

然后把它賦給一個單元格:

HSSFCell cell1 = row.createCell((short)1);

cell1.setCellStyle(cellStyle);

然后更改樣式中的背景色屬性為藍色:

cellStyle.setFillForegroundColor(HSSFColor.BLUE.index);

然后賦給另一個單元格:

HSSFCell cell2 = row.createCell((short)2);

cell2.setCellStyle(cellStyle);

想當然,我們預計在最終結果中cell1的背景色為紅色,cell2的背景色為藍色。但是結果是:兩個單元格的背景色都變成了藍色。

遇到這種情況,要預先定義兩種不同的單元格樣式。

當一個EXCEL文件同時需要很多大同小異的單元格樣式時,這樣一一定義很麻煩。POI HSSF提供了一個HSSFCellUtil類(在org.apache.poi.hssf.usermodel.contrib包),里面有幾個方法可以繞過HSSFCellStyle直接設定單元格的樣式,但這幾個方法會拋出NestableException異常,要處理這個異常,需要引用Apache的幾個Common包:

commons-beanutils.jar

commons-beanutils-bean-collections.jar

commons-beanutils-core.jar

commons-lang.jar

commons-logging-api.jar

合并單元格

HSSFSheet.addMergedRegion(new Region())方法可以合并單元格,Region()中的一個構造函數含有四個參數,分別代表起始行、起始列、結束行、結束列:

sheet.addMergedRegion(new Region(startRow,startCell,endRow,endCell)));

處理公式

HSSFCell.setCellFormula()方法用來在EXCEL單元格中寫入公式。

cell = row.createCell((short)(dataFlag));

cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);

cell.setCellFormula("SUM("A1:D1")");

cell.setCellStyle(nameStyle);

處理鏈接

在POI中往單元格中寫鏈接,是用HYPERLINK函數搞定的。

HYPERLINK函數包含兩個參數,第一個參數是指向的URL地址,第二個參數是顯示字串。

cell = row.createCell((short)(dataFlag));

cell.setCellType(HSSFCell.CELL_TYPE_FORMULA);

cell.setCellFormula("HYPERLINK('鏈接地址http...')");???cell.setCellStyle(linkStyle);

為了使鏈接效果更好,我們可以給鏈接所在單元格定義一種樣式,使鏈接顯示為有下劃線的藍色字串:

HSSFCellStyle linkStyle = workbook.createCellStyle();

linkStyle.setBorderBottom((short)1);

linkStyle.setBorderLeft((short)1);

linkStyle.setBorderRight((short)1);

linkStyle.setBorderTop((short)1);

linkStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);

linkStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

HSSFFont font = workbook.createFont();

font.setFontName(HSSFFont.FONT_ARIAL);

font.setUnderline((byte)1);??font.setColor(HSSFColor.BLUE.index);

linkStyle.setFont(font);

中文處理:

要在通過POI生成的EXCEL中正常顯示中文,需要為單元格設置編碼:

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

cell.setCellValue("部門");

總結

以上是生活随笔為你收集整理的java poi 设置公式_poi公式处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。