java (apache POI 元件) 操作 excel 插入批註
阿新 • • 發佈:2018-12-31
在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();
}
}