使用 poi 初步——创建和编辑excel文件

创建和设置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();
	}

}

效果如下:



猜你喜欢

转载自blog.csdn.net/antfit/article/details/7476356