我正在使用Excel中的C#读取几个单元格的属性,并将附加了属性的文本写入Word。根据它们在Excel中的大小,它们在Word中的大小应该相同。
然而,这些属性似乎“冻结”了。有没有人知道可能是什么问题?
实施例; 我有三个单元格A1,A2和A3,字体大小分别为11,8,11。 在Word中,三个文本的大小为11.(对于Excel中的每个单元格,它的大小为11):
docRange.Font.Size = (float)ws.Cells[row, column].Style.Font.Size;
这很奇怪,因为你应该期望大小为11,8和11.但是如果我在Excel中尝试以下内容:
MsgBox ActiveSheet.Cells(row, column).Style.Font.Size
它还为每个细胞提供了11的大小。这应该是11,8和11。
(我已经尝试过自动计算和.calculate();
)。
@Edit 13:13 22-12-2015
如果我打开一个全新的Excel文件,将测试放在A1和A2上,给A1大小11和A2大小8.它在MsgBox ActiveSheet.Cells(2, 1).Style.Font.Size
和MsgBox ActiveWorkbook.Sheets("Blad1").Range("A2:A2").Style.Font.Size
答案 0 :(得分:1)
在Excel中,单元格每个字符可以包含不同的字体。所以你应该从Font
对象获得Characters
:
MsgBox ActiveSheet.Cells(row, col).Characters.Font.Size
仅当单元格中的所有字符都是相同字体时才会起作用。如果不是,它将产生错误。为了避免这种情况,你只能获得所有的第一个字符的字体:
MsgBox ActiveSheet.Cells(3, 4).Characters(1, 1).Font.Size
或者你必须检查每个角色。