创建和设置exel的格式等简单程序,里面有详细说明:
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
public class WriteExcel
{
public static void main(String[] args) throws Exception
{
// 创建新的excel文件
FileOutputStream out = new FileOutputStream("workbook.xls");
// 创建一个workbook
Workbook wb = new HSSFWorkbook();
// 新建一个sheet
Sheet s = wb.createSheet();
// 声明一个行对象引用
Row r = null;
// 声明一个cell对象引用
Cell c = null;
// 新建3个cell风格
CellStyle cs = wb.createCellStyle();
CellStyle cs2 = wb.createCellStyle();
CellStyle cs3 = wb.createCellStyle();
DataFormat df = wb.createDataFormat();
// 新建2个字体对象
Font f = wb.createFont();
Font f2 = wb.createFont();
// 设置字体大小12
f.setFontHeightInPoints((short) 12);
// 设置颜色:蓝色
f.setColor((short) 0xc);
// 设为加粗字体
// arial 为默认字体
f.setBoldweight(Font.BOLDWEIGHT_BOLD);
// 设置字体大小10
f2.setFontHeightInPoints((short) 10);
// 设置为红色
f2.setColor((short) Font.COLOR_RED);
// 设为粗体
f2.setBoldweight(Font.BOLDWEIGHT_BOLD);
// 添加删除线
f2.setStrikeout(true);
// 关联字体与单元格
cs.setFont(f);
// 设置数据格式
cs.setDataFormat(df.getFormat("#,##0.0"));
// 设置单元格边框
cs2.setBorderBottom(cs2.BORDER_THIN);
// 填充
cs2.setFillPattern((short) CellStyle.BORDER_HAIR);
// 将整个列表的单元格模式设置成为text形式的数据模式-DataFormat
cs2.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));
// 设置字体
cs2.setFont(f2);
// 使用 Unicode 设置sheet名
wb.setSheetName(0, "\u0422\u0435\u0441\u0442\u043E\u0432\u0430\u044F "
+ "\u0421\u0442\u0440\u0430\u043D\u0438\u0447\u043A\u0430");
// in case of plain ascii
// wb.setSheetName(0, "HSSF Test");
// 新建一个三十行的表
int rownum;
for (rownum = (short) 0; rownum < 30; rownum++)
{
// 新建行-row
r = s.createRow(rownum);
// 区别显示
if ((rownum % 2) == 0)
{
r.setHeight((short) 0x249);
}
// 从0开始偶数列循环
for (short cellnum = (short) 0; cellnum < 10; cellnum += 2)
{
// 创建numeric类型的单元格 在cellnum列
c = r.createCell(cellnum);
// 设置内容,表示区别
c.setCellValue(rownum * 10000 + cellnum);
// 创建numeric类型的单元格在cellnum+1列
c = r.createCell((short) (cellnum + 1));
// 偶数行,设置风格和值
if ((rownum % 2) == 0)
{
c.setCellStyle(cs);
c.setCellValue("Test");
}
// 奇数行,设置风格和值
else
{
c.setCellStyle(cs2);
c.setCellValue("HEllO");
}
// 设置列宽度
s.setColumnWidth((short) (cellnum + 1),
(short) ((50 * 8) / ((double) 1 / 20)));
}
}
// 跳 两行
rownum++;
rownum++;
//新建行
r = s.createRow(rownum);
//设置第三个CellStyle风格
cs3.setBorderBottom(cs3.BORDER_THICK);
// 画一个横线,长度为10
for (short cellnum = (short) 0; cellnum < 10; cellnum++)
{
// 创建空cell
c = r.createCell(cellnum);
// 设置单元格风格为 cs3
c.setCellStyle(cs3);
}
// 展示添加和删除一个sheet的操作
s = wb.createSheet();
wb.setSheetName(1, "DeletedSheet");
wb.removeSheetAt(1);
wb.write(out);
out.close();
}
}
效果如下: