1. 程式人生 > >java (apache POI 元件) 操作 excel 插入批註

java (apache POI 元件) 操作 excel 插入批註

在java的開源世界中,有兩套比較有影響的API可供使用,一個是POI,一個是jExcelAPI(即jxl)。jxl功能相對POI比較弱一點。

本來使用的是jxl那一套讀取和生成報表的工具,發現該框架不支援插入批註(因為批註是特殊語法,jxl程式碼會解析批註做特定操作)。

轉用POI,以下是一個寫批註的Demo

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFComment
; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException{ //建立工作簿物件 HSSFWorkbook wb=new HSSFWorkbook();
//建立工作表物件 HSSFSheet sheet=wb.createSheet("我的工作表"); //建立繪圖物件 HSSFPatriarch p=sheet.createDrawingPatriarch(); //建立單元格物件,批註插入到4行,1列,B5單元格 HSSFCell cell=sheet.createRow(4).createCell(1); //插入單元格內容 cell.setCellValue(new HSSFRichTextString("批註")); //獲取批註物件 //(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2) //前四個引數是座標點,後四個引數是編輯和顯示批註時的大小. HSSFComment comment=p.createComment
(new HSSFClientAnchor(0,0,0,0,(short)3,3,(short)5,6)); //輸入批註資訊 comment.setString(new HSSFRichTextString("外掛批註成功!外掛批註成功!")); //新增作者,選中B5單元格,看狀態列 comment.setAuthor("toad"); //將批註新增到單元格物件中 cell.setCellComment(comment); //建立輸出流 FileOutputStream out=new FileOutputStream("writerPostil.xls"); wb.write(out); //關閉流物件 out.close(); } }