Delphi XE2 中的 Excel 列自动调整

标签 excel delphi delphi-xe2 excel-2010

我正在将一些较旧的代码从 Office 2000 移至 Office 2010,但在让 Excel 自动调整列时遇到了问题

正在运行的代码如下:

for x := 1 to LV.Columns.Count do
  XLApp.Columns[x].EntireColumn.AutoFit;

其中 XLApp 是 TExcelApplication 组件

当我查看 VBA 时,等效代码应该是

 Columns("A:A").EntireColumn.AutoFit

对我来说,更改代码以使范围与 VBA 匹配很容易,但这似乎不是问题。编译器返回的错误是

Class does not have a default property

并且[x]突出显示。代码完成不提供任何我可以看到的选择单个列的方法,无论是作为整数还是范围。

有什么建议吗?

最佳答案

您拥有的代码将适用于后期绑定(bind) COM。但您声明您正在使用早期绑定(bind)的 COM。

对于早期绑定(bind)的 COM,您需要使用如下内容:

ExcelApp.Range['A1','A1'].EntireColumn.AutoFit;

我无法解释代码过去是如何工作的。也许从 Excel 类型库创建的导入单元有一些微妙的不同。

关于Delphi XE2 中的 Excel 列自动调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15474776/

相关文章:

excel - 使用 Apache POI 在 Excel 行中向前折叠

delphi - 主详细信息中的 TClientDataset 未关闭详细信息查询

delphi - Delphi 2009 可以与 Delphi 2006 或 Delphi 2007 安装在同一台计算机上吗?

xml - 处理无效 XML 的建议方法

MYSQL-Access-Macro Error 字段列表中的未知列

java - 如何将数组中的数据导出到 Excel 电子表格?

php - 使用 fputcsv 连接列

delphi - 如何在 Windows/Mac 上从 FireMonkey 启动电子邮件客户端?

multithreading - 如何使用Delphi和OmniThread在后台将文件上传到azure?

delphi - 为什么LoadLibrary成功或失败取决于当前目录?