用POI写Excel文件, 发现字体都变成Arial了。 而在中文环境下,默认字体应该是宋体。 我的问题是:POI能否在文件级或sheet级设置自己想要的默认字体。
解决方案 »
- 问一下,为什么下面代码关于TreeMap,Comparator会有错误
- 一则随机数取值范围的疑惑
- 用正则表达式,从SQL中,取得项目明字,和表名
- 问个数学问题,好像跟概率有关
- 用数组实现字符串的翻转
- 谁有unicode字符表啊?
- 如何把yyyy-MM-dd HH:mm格式日期转为时间戳
- 在java中如何表示Long的unsigned??c语言中有unsigned long,那java中呢???谢谢了!!
- java 中有哪个函数可以把一个字串反序排练?
- 关于JAVA2中的线程问题,不推荐使用的函数功能由那些函数来代替??????
- 谁帮老弟看看这个问题
- 大家来谈谈java.lang.StackOverFlowError,以前没遇到过这个异常
http://poi.apache.org/spreadsheet/quick-guide.html
下面是用POI HSSF操作Excel文件的方法简述:一, 建立Excel工作薄
HSSFWorkbook wb = new HSSFWorkbook();二, 建立Excel工作表,每个工作表对应的是Excel界面左下角的一个标签sheet1,sheet2 …
HSSFSheet sheet1 = wb.createSheet("new sheet");三, 在工作表中建立单元格//首先,建立行对像,行号作为参数传给createRow方法,第一行由0开始计算。
HSSFRow row = sheet.createRow((short)0);//建单元格
HSSFCell cell = row.createCell((short)0);//给单元格赋值
cell.setCellValue(1);//也可同一行内完成建立单元格和赋值
row.createCell((short)1).setCellValue(1.2);
row.createCell((short)2).setCellValue("This is a string");
row.createCell((short)3).setCellValue(true);//数据格式可通过创建单元格值时默认如上面所视
//也可以创建单元格后调用setCellType指定
cell.setCellType(CELL_TYPE_NUMERIC);四, 向单元格插入日期值
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");// 可通过Sheet.setSheetName(sheetindex,"SheetName",encoding)设定工作表名// 创建新行并向其加入单元格,行号由0开始。
HSSFRow row = sheet.createRow((short)0);// 创建一个单元格并向其输入一日期值,但这第一个单元格并非是日期格式。
HSSFCell cell = row.createCell((short)0);
cell.setCellValue(new Date());// 我们将这第二个单元格改成日期格式,这需要从工作薄创建一个新的单元格格式,这可// 以只影响当前建立的一个单元格。
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));
cell = row.createCell((short)1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);五, 各种单元格样式
HSSFCellStyle cellStyle = wb.createCellStyle();
//对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//带边框
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//颜色与填充样式
cellStyle.setFillBackgroundColor(HSSFColor.AQUA.index);
cellStyle.setFillPattern(HSSFCellStyle.BIG_SPOTS);
cellStyle.setFillForegroundColor(HSSFColor.ORANGE.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);六, 行高,列宽。
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFRow row = sheet.createRow((short)0);//2是行高值
row.setRowHeight(2);//3是列号,4是列宽值
sheet.setColumnWidth(3, 4);貌似是标红这句
这个问题我碰到过:
HSSFWorkbook hw = new HSSFWorkbook();
HSSFFont font = hw.getFontAt((short) 0);
font.setCharSet(HSSFFont.DEFAULT_CHARSET);
font.setFontHeightInPoints(20);//更改默认字体大小
font.setFontName("宋体");//
这段代码满足你要求了不?
这个得通过
CellStyle style = wb.createCellStyle();
style.setFont(font);Cell cell1 = row.createCell(0);
cell1.setCellStyle(style);
来调用吧?如何在不用调用的情况下(即默认情况下)输出为自己想要的格式呢?
我现在输出的字体大小为10,如何使之为11呢?