点进去了,但是没找到申请30天的入口! 能给个具体的操作步骤吗?
@xiaoman
您可以通过在购买向导中将产品添加到购物车来申请临时许可证。
https://purchase.aspose.com/buy
或者,您可以从现有报价中申请临时许可证。
https://purchase.aspose.com/orders
@xiaoman
经过分析发现这里可能存在某些意外导致创作语言和默认字体冲突。针对你的实际情况,这里有两个解决方案希望能够对你有所帮助:
1、设置excel软件的创作语言为中文,然后再运行程序。
文件-设置-语言-创作语言和校对-中文
2、在进行你的实际操作之前添加字体设置。
参考代码如下:
原来的代码
try (InputStream inputStreamAspose = new ByteArrayInputStream(data)) {
asposeWork = new Workbook(inputStreamAspose);
}
替换后的代码
try (InputStream inputStreamAspose = new ByteArrayInputStream(data)) {
asposeWork = new Workbook(inputStreamAspose);
Style defaultStyle = asposeWork.getDefaultStyle();
defaultStyle.getFont().setSchemeType(FontSchemeType.NONE);
asposeWork.setDefaultStyle(defaultStyle);
}
try (InputStream inputStreamAspose = new ByteArrayInputStream(data)) {
asposeWork = new Workbook(inputStreamAspose);
Style style = asposeWork.createStyle();
style.getFont().setName(“宋体”);
style.getFont().setSize(10);
asposeWork.setDefaultStyle(style);
}
用这种可以 你上面那个好像不行;另外,我试了几个字段 宋体效果居中最好;其他字体会有一定偏差!
宋体效果:
image.jpg (73.3 KB)
Calibri效果:
image.jpg (77.2 KB)
@xiaoman
感谢你的反馈。宽度测量和默认样式的字体有关,默认样式的字体和Excel默认字体保持一致能获得更精确的测量结果。
你可以通过以下方式获取测量时使用的默认字体:
workbook.getDefaultStyle().getFont().getName()
如果你直接更改workbook默认样式的字体,Excel文件行列的宽高就会改变,会破坏文件里原来的布局等设置。对于Excel文件,你可以直接修改默认字体,在默认字体下进行布局,最后测量得到更精确的结果。关于如何设置Excel默认字体,请查看附件。defaultFont.png (60.3 KB)
另外,宽高测量是在机器显示比例100%设置下进行测量的,如果不同的机器显示比例,可能会影响测量结果。如果你有任何疑问,请随时联系我们。
@xiaoman
请使用以下样例代码打印出行高和列宽,这对我们定位问题将会很有帮助。我们很块就会检查。
Workbook workbook = new Workbook(filePath + "订单模板.xlsx");
Worksheet sheet = workbook.getWorksheets().get(0);
RowCollection rows = sheet.getCells().getRows();
Iterator rowIter = rows.iterator();
while(rowIter.hasNext())
{
Row row = (Row)rowIter.next();
System.out.println("row index: " + row.getIndex() + " height: " + row.getHeight());
}
ColumnCollection columns = sheet.getCells().getColumns();
Iterator colIter = columns.iterator();
while(colIter.hasNext())
{
Column column = (Column)colIter.next();
System.out.println("column index: " + column.getIndex() + " width: " + column.getWidth());
}