1.最近看到一个将DBGrid中的数据输出到Excel的例子,其中保存Excel文件的语句是:
Excel.ActiveWorkbook.SaveAs(FileName, xlNormal, '', '', False, False);
其中xlNormal = -4143是常量。
请教一下和后5个参数的意义,和Excel.ActiveWorkbook.SaveAs(FileName)有和不同?
2.在使用Excel.Columns[k+1].ColumnWidth:= DBGrid.Columns.Items[i].Title.Column.Width;语句设置列宽时出错,提示“不能设置类Range的ColumnWidth”属性。该如何解决?或有别的方法设置列宽?在线等待,望高手们不吝赐教。
Excel.ActiveWorkbook.SaveAs(FileName, xlNormal, '', '', False, False);
其中xlNormal = -4143是常量。
请教一下和后5个参数的意义,和Excel.ActiveWorkbook.SaveAs(FileName)有和不同?
2.在使用Excel.Columns[k+1].ColumnWidth:= DBGrid.Columns.Items[i].Title.Column.Width;语句设置列宽时出错,提示“不能设置类Range的ColumnWidth”属性。该如何解决?或有别的方法设置列宽?在线等待,望高手们不吝赐教。
你的excel范围range设置不对.
Excel的ColumnWidth和DBGrid的Columns的Width,这两个宽度的度量单位好像是不一样的吧?
我令Excel.Columns[k+1].ColumnWidth:= 10 所得的Excel中字段的宽度,比DBGrid中DBGrid.Columns.Items[i].Title.Column.Width;= 40 的字段还要宽。
谁知道两者的换算关系啊?
Excel中以磅为单位
Delphi里用像素为单位(1磅=0.035厘米)
(1 厘米 = 28.35 磅)
1像素 = 0.75磅
xlExclusive (不含方式)
xlNoChange default (不更改访问方式)
xlShared (共享列表)
如果省略此参数,则不会更改访问方式。如果在没有改变文件名的情况下保存共享列表,则可以忽略参数。若要改变访问方式,请使用 ExclusiveAccess 方法。
ConflictResolution XlSaveConflictResolution 类型,可选。XlSaveConflictResolution 可为以下 XlSaveConflictResolution 常量之一。
xlUserResolution (显示冲突解决方案对话框)
xlLocalSessionChanges (自动接受本地用户的修改)
xlOtherSessionChanges (接受除本地用户之外的其他用户的更改)
如果忽略本参数,则显示冲突处理对话框。
AddToMru Variant 类型,可选。如果该值为 True ,则将该工作簿添加到最近使用的文件列表中。默认值为 False。TextCodePage Variant 类型,可选。不在美国英语版的 Microsoft Excel 中使用。TextVisualLayout Variant 类型,可选。不在美国英语版的 Microsoft Excel 中使用。Local Variant 类型,可选。如果该值为 True,则以 Microsoft Excel(包括控制面板设置)的语言保存文件。如果该值为 False(默认值),则以 Visual Basic for Applications (VBA) 的语言保存文件,其中 Visual Basic for Applications (VBA) 为典型安装的美国英语版本,除非 VBA 项目中的 Workbooks.Open 来自旧的国际化的 XL5/95 VBA 项目。