java生成excel设置列宽,汉字问题

如下代码XSSFWorkbookworkbook=newXSSFWorkbook();XSSFSheetsheet=workbook.createSheet("test"... 如下代码

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("test");
XSSFRow row = sheet.createRow(0);
for (int i = 0; i < map.size(); i++) {
row.createCell(i).setCellValue(map.get(i) + "\r\n" + "qweqwe");
sheet.setColumnWidth((short) i,(short) (map.get(i).length() *256));
}
里面sheet.setColumnWidth((short) i,(short) (map.get(i).length() *256));为设置excel列宽随map.get(i) + "\r\n" + "qweqwe"的长度而改变,但是他是依据map.get(i).length()给出的长度,我的map.get(i)里面含有汉字,所以sheet.setColumnWidth((short) i,(short) (map.get(i).length() *256))就比实际的长度短一些,有没有办法才能让他正好是map.get(i) + "\r\n" + "qweqwe"长度呢
展开
 我来答
张仔鸿
2013-09-24
知道答主
回答量:20
采纳率:0%
帮助的人:12万
展开全部
貌似只能大概猜测。因为英文的字符不是等宽的,另外也和font-size, font-family有关。

如果是12号字体,一个汉字的宽度应该是12像素,一个字母应该大致是6像素。
你还需要将1像素转化为1excel单元格的宽度单位。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式