Excel遍历图片 适应单元格大小并居中

@xiaoman
你愿意提供以像素为单位的行高和列宽吗?

表格吗? wps中的话好像默认显示的单位就是磅和字符

@xiaoman
7.png (2.0 KB)

点击两列之间, 会显示两种宽度

我的不会显示,不知道是不是软件或者版本问题,如图所示:
image.jpg (78.5 KB)

我把生成的文件上传吧,你们用你们的工具看看?
订单模板_result_111.xlsx.zip (3.6 MB)

@xiaoman
由于我们不能复现你的问题。所以需要你的数据进行比对。请把鼠标放置到两列之间显示列宽,放置到两行之间显示行高。请查看附件。
列宽:1.png (228.1 KB)
行高:2.png (166.8 KB)

你用的是WPS还是微软的office?

image.jpg (100.6 KB)
image.jpg (110.2 KB)
image.jpg (100.5 KB)
image.jpg (94.3 KB)
image.jpg (87.5 KB)
image.jpg (98.3 KB)
image.jpg (90.9 KB)

@xiaoman
感谢你的反馈和提供的详细信息。我们将进一步研究你的问题。一旦有更新,我们将及时通知你。我们使用的是Office,为了提示你如何在WPS里查看行高和列宽,我们使用了WPS进行截图。

你好 这个问题有结论了吗?

@xiaoman
你本地的列宽比计算的列宽小了, 所有图片就偏右了。
你能截图一下本地WPS 显示的默认字体是什么?你的mac 机器上是否安装了宋体(ctrl + space, 输入字体册)?请参考为什么mac上的office word找不到宋体 只有宋体-简 – PingCode
在我机器上,默认字体是Calibri的时候, 第三列的宽度是96px, 宋体的时候, 显示列宽为110px.
另外麻烦你重新上传一下最新生成的xlsx 文件,我们需要再次检查生成的文件。

你的意思是这个跟我的软件和字体有关? 那测试服务器或者生产服务器上linux系统 也是要安装这个字体?
WPS默认字体是宋体-简 如图所示:
image.jpg (67.8 KB)

mac字体手册找不到Calibri这个字体和宋体

我现在要怎么操作或者说怎么解决这个问题呢?

@xiaoman

无论是服务器还是你的本地机器,都需要安装文件中用到的字体 。如果没有找到字体, 无论是WPS还是Aspose.Cells 都只能用其他字体来代替。所以请先安装字体。 另外你是否可以找个win 机器看看结果是否争取?

@xiaoman
10.jpg (174.1 KB)

以上是我的mac的wps 打开的结果。 没有太偏。
但是WPS 显示的第三列的宽度是2.7厘米,也就是102pixels, 所以还是有些偏差的

你能把你mac上安装的宋体和Calibri的ttf文件发我一下吗 或者说我可以在哪里下载呢?

@xiaoman
请参考Mac的官方安装手册:

你好,我昨天上微软官方网站下载了宋体安装后,打开生成的excel文件,确实居中效果更好了! 但是还是没有完全居中,但是用微软的office打开就是居中的,而且我发现同一个文件同一个单元格,office和WPS显示的列宽和行高不一样,我想问一下,那这种软件兼容问题有办法解决吗? 这个问题我得向领导反馈,谢谢你们!

image.jpg (103.5 KB)

image.jpg (97.4 KB)

@xiaoman
1行高不一致
这个问题可以通过定制行高 cells.SetRowHeightPixel() 解决 。
2列宽不一致
这个问题没法解决!
Excel文件中存放的列宽是以字符数为单位。所以不同的默认字体, 列宽会不一样(所以如果机器上没有对应的字体,就不能得到正确的对应列宽)。即使是相同的字体, 显示器的显示比例不一样,列宽也不不一样。例如E列在我的windows不相同的显示比例下的宽度 ,100% : 183pixels ;125% : 238pixels, 150%: 291 pixels. Macs显示的宽度和windows还不一样。
3,图片位置
Excel文件中图片的起始位置:行索引,行偏移量(in unit of points), 列索引, 列偏移量(in unit of points)。 我们目前是按100%显示比例计算的(其他比例可以设置DPI,但是不够精确). 因为图片的起始位置是固定的,所以显示的列宽大了,就偏左了; 列宽小了, 就偏右了。
4,你的客户的机器都是一样的mac机器么?如果是,我们可以研究一下mac和windows字宽的不同。
如果客户的机器不一样,那这种居中的需求恐怕很难做到。
你可以尝试用宏让Excel打开文件的时候调整位置。