We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
通过@ContentStyle注解设置导出单元格的样式,实测无法生效
设置dataFormat的值为49,指定单元格为文本样式,以防止csv注入问题
@Data @AllArgsConstructor @NoArgsConstructor public class TestVO { @ContentStyle(dataFormat = 49) @ExcelProperty(value = "列1", index = 0) private String user; @ContentStyle(dataFormat = 49) @ExcelProperty(value = "列2", index = 1) private String name; @ContentStyle(dataFormat = 49) @ExcelProperty(value = "列3", index = 2) private String value; }
实测导出文件无法生效
public static void main(String[] args) { String fileName = "test.xlsx"; List<TestVO> testList = new ArrayList<>(); TestVO vo = new TestVO(); vo.setName("@ABS(cmd|'/c calc'!A1)"); vo.setValue("@ABS(cmd|'/c calc'!A1)"); vo.setUser("@ABS(cmd|'/c calc'!A1)"); testList.add(vo); EasyExcel.write(fileName) .head(HEAD) .excelType(ExcelTypeEnum.XLSX) .sheet(1, "测试") .doWrite(testList); }
发现在AbstractExcelWriteExecutor类的313行,converter被实例化为StringStringConverter
当执行到327行时:
StringStringConverter会丢弃之前设置好的ExcelContentProperty属性,也就是我在@ContentStyle中设置的属性:
可以看到此时的cellData对象的writeCellStyle和originCellStyle对象都是null:
不晓得这是设计如此还是一个被疏忽的bug呢?
The text was updated successfully, but these errors were encountered:
zhuangjiaju
No branches or pull requests
触发场景描述
通过@ContentStyle注解设置导出单元格的样式,实测无法生效
触发Bug的代码
设置dataFormat的值为49,指定单元格为文本样式,以防止csv注入问题
实测导出文件无法生效
问题跟踪
发现在AbstractExcelWriteExecutor类的313行,converter被实例化为StringStringConverter
![image](https://private-user-images.githubusercontent.com/17854738/298500660-2aca7763-17a7-4098-b1dc-f0502605f93b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMzgzMzUsIm5iZiI6MTcyMDMzODAzNSwicGF0aCI6Ii8xNzg1NDczOC8yOTg1MDA2NjAtMmFjYTc3NjMtMTdhNy00MDk4LWIxZGMtZjA1MDI2MDVmOTNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDA3NDAzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNiNDBkMmJlOTJiOGY0MWFmMzNjZTU5OThjNDY4YWI0ZDE2YmE3OTU2MGZiYzc1NDk3OGFkZGQ3Mzc4MWEyM2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bhKRQMd9RyXm_JQsrYv8IC6rxJWJtJGRZfkjs2x0kto)
当执行到327行时:
![image](https://private-user-images.githubusercontent.com/17854738/298500845-6c4ca132-8def-43b2-af55-53193925f056.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMzgzMzUsIm5iZiI6MTcyMDMzODAzNSwicGF0aCI6Ii8xNzg1NDczOC8yOTg1MDA4NDUtNmM0Y2ExMzItOGRlZi00M2IyLWFmNTUtNTMxOTM5MjVmMDU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDA3NDAzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2ZjE1ZTEzNjBiYmFhYzM4YjdjMWYzOWQ5YjcwMWE5M2RkOTk1MjIyNDZhOTdhYzJlOGIwYmQ2NGU4MDUwNjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.OxPDbKdI2onxsc3Q6_wjcLONW5qHgEJYC_vwNkpKsUI)
StringStringConverter会丢弃之前设置好的ExcelContentProperty属性,也就是我在@ContentStyle中设置的属性:
![image](https://private-user-images.githubusercontent.com/17854738/298501278-b7184bbf-0c2c-4381-9d79-c4736875b36a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMzgzMzUsIm5iZiI6MTcyMDMzODAzNSwicGF0aCI6Ii8xNzg1NDczOC8yOTg1MDEyNzgtYjcxODRiYmYtMGMyYy00MzgxLTlkNzktYzQ3MzY4NzViMzZhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDA3NDAzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg1YTIyYmIyYWQyYTU2ZTIxMWFkYzdjZGVkY2JiMzEwNmJlMTFmZDgxMWIzZjcwYTdiNzY3YWFkOTc1MWQ2NjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cvwajvmC0ZEQC4Ayh6iG6ru8dKdsKwUN5nufvhl2f84)
可以看到此时的cellData对象的writeCellStyle和originCellStyle对象都是null:
![image](https://private-user-images.githubusercontent.com/17854738/298501540-cbf2cca7-36a1-4262-88c9-314113cfe47f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAzMzgzMzUsIm5iZiI6MTcyMDMzODAzNSwicGF0aCI6Ii8xNzg1NDczOC8yOTg1MDE1NDAtY2JmMmNjYTctMzZhMS00MjYyLTg4YzktMzE0MTEzY2ZlNDdmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA3VDA3NDAzNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFkZDczNTExNmU0Yzg3NWZiZjBkM2M0ZjY0NDU2ZTFlMWMxMDMyOTliMjBkNjViYzE1ZmY1NjkxNDBjN2UxNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.1WztYbdfzhYq61xzzXFdsBqeqPb1tR0iBqUn9qHuABQ)
期待回复
不晓得这是设计如此还是一个被疏忽的bug呢?
The text was updated successfully, but these errors were encountered: