VC6编程控制Excel2003列宽设置

4星 · 超过85%的资源 需积分: 10 17 下载量 117 浏览量 更新于2024-09-15 收藏 4KB TXT 举报
"这篇文章主要介绍了如何在VC6环境下利用COM接口控制Excel2003设置不同列宽的方法。创建一个Excel应用实例后,通过一系列的COM对象操作,如设置可见性、添加工作簿、保存文件以及调整列宽,实现对Excel表格的自定义设置。" 在VC6中,我们可以使用Microsoft Excel的COM接口来操控Excel应用程序,从而实现对Excel文档的编程控制。在本例中,主要涉及以下几个关键知识点: 1. **创建Excel Application对象**: 首先通过`CreateDispatch`函数创建一个Excel应用实例,该函数用于生成指定类ID(CLSID)的对象,这里是"Excel.Application",表示Excel应用程序。如果创建失败,程序会显示一个错误消息框。 2. **设置Excel属性**: - `SetVisible(true)`:使Excel应用程序在运行时可见,允许用户查看操作过程。 - `SetUserControl(true)`:允许用户与应用程序交互。 - `SetDisplayFullScreen(true)`:将Excel显示为全屏模式。 - `SetDisplayAlerts(true)`:启用Excel的警告和提示,防止在自动化过程中用户被中断。 3. **操作Workbooks和Workbook对象**: - `AttachDispatch`函数用于附加一个已存在的Dispatch对象,这里用来获取或操作Excel的工作簿集合`_Workbooks`。 - `books.Add(COleVariant(strPath))`:添加一个新的工作簿,`strPath`通常为工作簿的保存路径,但在这里使用了`covOptional`参数,意味着不提供文件路径,Excel将自动创建一个新工作簿。 4. **保存新工作簿**: 使用`book.SaveAs`方法保存新工作簿,传入文件名`m_strfilename`,并可以设置其他保存选项,如文件格式等。 5. **操作Worksheets和Worksheet对象**: 同样,我们需要获取或操作工作表集合`_Worksheets`和单个工作表`_Worksheet`,以便进行后续的列宽设置。 6. **设置列宽**: - `Range`和`UsedRange`对象用于操作单元格范围。`usedRange`通常是工作表中实际使用的区域,包括所有非空单元格。 - `Range-cols`可能表示创建一个Range对象来操作所有列。 - `Font`对象可以用于设置字体样式,虽然在这个例子中未被使用,但在实际操作中可能涉及单元格格式的修改。 7. **COleVariant**: 在COM编程中,`COleVariant`用于传递各种类型的参数,它可以在运行时动态地改变其数据类型,适应不同的接口方法。 8. **LPDISPATCH**: `LPDISPATCH`是指向IDispatch接口的指针,常用于访问自动化对象的方法和属性。 这个代码段展示了如何在VC6中利用Excel的COM接口创建一个新的Excel文档,设置列宽并保存文件。具体到列宽设置部分,虽然在给出的代码中没有直接实现,但可以通过`Range`对象的`ColumnWidth`属性来完成,例如`range.ColumnWidth = 宽度值`,这里的宽度值是实数,代表列宽。对于不同的列,可以通过循环遍历`_Worksheets`集合中的每一张工作表,然后对每张工作表的`_Range`进行操作,设置不同列的宽度。