GrapeCity / DsExcel-Java

High-speed Excel spreadsheet API for Java
https://developer.mescius.com/document-solutions/java-excel-api
72 stars 19 forks source link

设置指定行的高度时,无关行高也跟着变化了。 #1

Open sunqing971 opened 5 years ago

sunqing971 commented 5 years ago

比如标准行高是20,2-5行是10,其他的,空白行高依然是20,这是没错的,但是有数据的行高却也变了,且既不是20,又不是10,而是变为对内容自适应的行高,是bug吗?还是我写的不对? worksheet.setStandardHeight(20);
worksheet.getRange("2:5").setRowHeight(10);

shangpeixu commented 5 years ago

Hi Sunqing971,你好 有数据的行高却也变了,且既不是20,又不是10,而是变为对内容自适应的行高,是bug吗? -> 不是bug,而是Excel的策略,在Excel中如果没有给一行显示设置行高,那么这一行视为自适应行高,所以当这行某个cell的字体或字号改变时,这一行的行高会自动适应新内容而产生变化,你可以新建一个Excel文档,在某个cell中输入一些内容,增加或减小这个cell的字号,会发现Excel这一行为。但是当你通过鼠标拖拽改变这一行的大小后,再增加或减小cell的字号,就不会影响行高了。而worksheet.setStandardHeight(20)并不表示设置行高,在Excel中它只是设置所有行高的初始默认值而已。

还是我写的不对? -> 因为Excel有根据字体自适应行高的策略,对应到GcExcel Java,你需要知道哪些行是固定行高的,然后显示设置worksheet.getRange("15:15").setRowHeight(20);

希望我的回答能解决你的问题。