Excel中错误的字体属性
我正在用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上进行testing,给A1大小11和A2大小8.它在MsgBox ActiveSheet.Cells(2, 1).Style.Font.Size
上给出11 MsgBox ActiveSheet.Cells(2, 1).Style.Font.Size
和MsgBox ActiveWorkbook.Sheets("Blad1").Range("A2:A2").Style.Font.Size
在Excel中,单元格可以包含每个字符的不同字体。 所以你应该从Characters
对象中获取Font
:
MsgBox ActiveSheet.Cells(row, col).Characters.Font.Size
这只会在单元格中的所有字符都是相同的字体时才起作用。 如果不是,将会产生一个错误。 为了避免这种情况,你只能得到所有的第一个字符的字体:
MsgBox ActiveSheet.Cells(3, 4).Characters(1, 1).Font.Size
或者你必须检查每一个字符。