office辦公

當前位置 /首頁/計算機/office辦公/列表

POI設定EXCEL單元格格式的操作小結

先獲取工作薄物件:

POI設定EXCEL單元格格式的操作小結

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = teSheet();

HSSFCellStyle setBorder = teCellStyle();

一、設定背景色

illForegroundColor((short) 13);// 設定背景色

illPattern(D_FOREGROUND);

二、設定邊框:

orderBottom(ER_THIN); //下邊框

orderLeft(ER_THIN);//左邊框

orderTop(ER_THIN);//上邊框

orderRight(ER_THIN);//右邊框

三、設定居中:

lignment(N_CENTER); // 居中

四、設定字型:

HSSFFont font = teFont();

ontName(黑體

ontHeightInPoints((short) 16);//設定字型大小

HSSFFont font2 = teFont();

ontName(仿宋_GB2312

oldweight(WEIGHT_BOLD);//粗體顯示

ontHeightInPoints((short) 12);

ont(font);//選擇需要用到的字型格式

五、設定列寬:

olumnWidth(0, 3766); //第一個引數代表列id(從0開始),第2個引數代表寬度值

六、設定自動換行:

rapText(true);//設定自動換行

七、合併單元格:

Region region1 = new Region(0, (short) 0, 0, (short) 6);

//引數1:行號 引數2:起始列號 引數3:行號 引數4:終止列號

ergedRegion(region1);

附一個完整的例子:

package ;

import CellStyle;

import Font;

import RichTextString;

import Workbook;

import Sheet;

import Row;

import Cell;

import RangeAddress;

import on;

import Style;

import OutputStream;

import Servlet;

public class CreateXL extends HttpServlet {

/** Excel 檔案要存放的位置,假定在D盤下 */

public static String outputFile = c:

private void cteateCell(HSSFWorkbook wb, HSSFRow row, short col, String val) {

HSSFCell cell = teCell(col);

// ncoding(DING_UTF_16);

ellValue(val);

HSSFCellStyle cellstyle = teCellStyle();

lignment(N_CENTER_SELECTION);

ellStyle(cellstyle);}

public static void main(String argv[]) {

try {

// 建立新的`Excel 工作簿

HSSFWorkbook workbook = new HSSFWorkbook();

// 設定字型

HSSFFont font = teFont();

// olor(R_RED);

oldweight(WEIGHT_BOLD);

ontHeightInPoints((short) 14);

// HSSFFont font2 = teFont();

// oldweight(WEIGHT_BOLD);

// ontHeightInPoints((short)14);

// 設定樣式

HSSFCellStyle cellStyle = teCellStyle();

ont(font);

lignment(N_CENTER);

// HSSFCellStyle cellStyle2= teCellStyle();

// ont(font2);

// lignment(N_CENTER);

// 在Excel工作簿中建一工作表,其名為預設值

// 如要新建一名為月報表的工作表,其語句為:

HSSFSheet sheet = teSheet(月報表

CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0,

11);

ergedRegion(cellRangeAddress);

//第一行

// 在索引0的位置建立行(最頂端的行)

HSSFRow row = teRow(0);

// 在索引0的位置建立單元格(左上端)

HSSFCell cell = teCell(0);

// 定義單元格為字串型別

ellType(_TYPE_STRING);

ellStyle(cellStyle);

// 在單元格中輸入一些內容

ellValue(new HSSFRichTextString(北京億卡聯科技發展有限公司小區門禁維修月報表

//第二行

cellRangeAddress = new CellRangeAddress(1, 1, 3, 6);

ergedRegion(cellRangeAddress);

row = teRow(1);

HSSFCell datecell = teCell(3);

ellType(_TYPE_STRING);

ellStyle(cellStyle);

ellValue(時間間隔xxxxx

cellRangeAddress = new CellRangeAddress(1, 1, 9,

10);

ergedRegion(cellRangeAddress);

teCell(9)ellValue(單位:元

//第三行

row=teRow(2);

teCell(0)ellValue(一、

teCell(1)ellValue(基本資料

//第4行

row=teRow(3);

teCell(1)ellValue(小區名稱:

cellRangeAddress=new CellRangeAddress(3,3,2,11);

ergedRegion(cellRangeAddress);

teCell(2)ellValue(xxxxx

//第5行

row=teRow(4);

teCell(1)ellValue(座落地點

cellRangeAddress=new CellRangeAddress(4,4,2,11);

ergedRegion(cellRangeAddress);

teCell(2)ellValue(xxxxx

//第6行

row=teRow(5);

teCell(1)ellValue(建成年月:

cellRangeAddress=new CellRangeAddress(5,5,2,4);

ergedRegion(cellRangeAddress);

teCell(2)ellValue(年月日:xxxxx

teCell(5)ellValue(聯絡人

cellRangeAddress=new CellRangeAddress(5,5,6,8);

ergedRegion(cellRangeAddress);

teCell(6)ellValue(XXX

teCell(9)ellValue(電話

cellRangeAddress=new CellRangeAddress(5,5,10,11);

ergedRegion(cellRangeAddress);

teCell(10)ellValue(XXX

//第7行

row=teRow(6);

teCell(1)ellValue(住戶:

teCell(2)ellValue((XX)

teCell(3)ellValue((戶)

cellRangeAddress=new CellRangeAddress(6,6,4,5);

ergedRegion(cellRangeAddress);

teCell(4)ellValue(共計( )

teCell(6)ellValue(幢

cellRangeAddress=new CellRangeAddress(6,6,7,8);

ergedRegion(cellRangeAddress);

teCell(7)ellValue(髮卡張數

cellRangeAddress=new CellRangeAddress(6,6,9,10);

ergedRegion(cellRangeAddress);

teCell(9)ellValue(xxxx

//第9行

row=teRow(8);

teCell(0)ellValue(二、

cellRangeAddress=new CellRangeAddress(8,8,1,2);

ergedRegion(cellRangeAddress);

teCell(1)ellValue(維修用材料臺賬

teCell(6)ellValue(三、

cellRangeAddress=new CellRangeAddress(8,8,7,9);

ergedRegion(cellRangeAddress);

teCell(7)ellValue(維修工時記錄

//第10行

row=teRow(9);

teCell(0)ellValue(日期

teCell(1)ellValue(維修事項

teCell(2)ellValue(材料清單

teCell(3)ellValue(數量

teCell(4)ellValue(單價

teCell(5)ellValue(材料金額

teCell(7)ellValue(日期

teCell(8)ellValue(技工

teCell(9)ellValue(工時數

teCell(10)ellValue(單價

teCell(11)ellValue(工時金額

//填充資料

for (int i = 0; i i++) {

row=teRow(9+i+1);

teCell(0)ellValue(日期

teCell(1)ellValue(維修事項

teCell(2)ellValue(材料清單

teCell(3)ellValue(數量

teCell(4)ellValue(單價

teCell(5)ellValue(材料金額

teCell(7)ellValue(日期

teCell(8)ellValue(技工

teCell(9)ellValue(工時數

teCell(10)ellValue(單價

teCell(11)ellValue(工時金額

}

//第n+10行

row=teRow(9+10+1);

//cellRangeAddress=new CellRangeAddress(19,19,0,4);

//ergedRegion(cellRangeAddress);

teCell(0)ellValue(累計:

teCell(1)ellValue(xxx

teCell(7)ellValue(累計:

teCell(8)ellValue(xxx

// 新建一輸出檔案流

FileOutputStream fOut = new FileOutputStream(outputFile);

// 把相應的Excel 工作簿存檔

e(fOut);

h();

// 操作結束,關閉檔案

e();

tln(檔案生成...

} catch (Exception e) {

tln(已執行 xlCreate() :