delphi5与自动化和Excel 2007运行Excel阅读
在我正在debugging的delphi 5程序中有这段代码:
s:string vararray:variant; vararray := VarArrayOf(['']); vararray := ExcelWorkSheet1.UsedRange[0].Value; s := VarToStr(vararray);
当Excel XP和2003运行时,这用于完美的工作。 但自从我更改为Excel 2007(也是Windows7)之后,delphi在最后一行('无效的变体types转换')中给出了变体types转换错误。
有人能帮我解决这个问题吗? 这个代码在过去的5年中还没有被触及,我无法find一个很好的来源来logging这些组件
谢谢!
我设法得到以下工作:
Sheet := Workbook.Sheets.Item[1] as ExcelWorksheet; value := Sheet.Range['A1','B1'].Value; Edit1.Text := value[1,1]; Edit2.Text := value[1,2];
请注意,我通过Excel2000
导入单元使用早期绑定。 我想你可能是使用CreateComObject('Excel.Application')
后期绑定。
我不明白你的Range[1,2]
语法 – 这似乎不符合Excel对象模型的要求。
我希望这有帮助。
UsedRange不需要激活。 如果不是.value
将是空的,不能被转换成一个string。
做额外的检查,如下所示:
s:string vararray:variant; vararray := VarArrayOf(['']); vararray := ExcelWorkSheet1.UsedRange[0].Value; if vararray <> nul then s := VarToStr(vararray); else s := '';