dromara / hutool

🍬A set of tools that keep Java sweet.
https://hutool.cn
Other
28.94k stars 7.48k forks source link

ExcelWriter设置样式无效问题 #1381

Closed lsiuf closed 3 years ago

lsiuf commented 3 years ago

版本情况

JDK版本: 1.8 hutool版本: 5.4.0

问题描述(包括截图)

1.样式设置无效,writer.getStyleSet().setBackgroundColor()和writer.getStyleSet().setFont()都无效,但是writer.setColumnWidth()、writer.setSheet()等方法有效.

2.业务场景是读取excel检查数据是否合法,将不合法的数据通过样式(背景色、字体颜色等)标记然后再次生成文件返回。这种场景有更好的代码示例吗?因为数据量可能比较大,我考虑过通过sax读取,但是sax读取后的reader无法转为writer(我猜测是读取方式不一样)。

示例代码

        ExcelReader excelReader = ExcelUtil.getReader("C:\\Users\\Administrator\\Desktop\\2020-12-29每日数据.xlsx");

        ExcelWriter writer = excelReader.getWriter();
        writer.setColumnWidth(-1, 100);
        writer.getStyleSet().setBackgroundColor(IndexedColors.RED, true);
        writer.getStyleSet().setFont(IndexedColors.RED.getIndex(), (short) 100, null, false);
looly commented 3 years ago

getStyleSet返回一个共享的样式,需要自定义样式需要createStyle。

lsiuf commented 3 years ago

getStyleSet返回一个共享的样式,需要自定义样式需要createStyle。

已解决,非常感谢

lsiuf commented 3 years ago

还有一个问题请教下,如果使用读取bean列表方法,excel的中文表头如何和英文bean字段进行映射?

image