OWC的spreadsheet控件的使用
第一次使用,麻烦大家给点代码看看,怎么连库将数据中的数据放到EXCEL中?
还有我想将指定单元格的北景色应该是什么方法属性呢?
我想在一些单元格之间连些线,能否实现这功能?
谢谢了!
[解决办法]
这是设置边框颜色的.背景颜色可能把Borders对象换成Interior对象,可以参考 OWC的帮助文件
我的office2003 OWC帮助文件在:C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052
Sub SetBorder()
Set ssConstants = Spreadsheet1.Constants
Spreadsheet1.ActiveSheet.Range( "b5:c10 ").Borders.Weight = ssConstants.owcLineWeightMedium
Spreadsheet1.ActiveSheet.Range( "b5:c10 ").Borders.Color = "green "
End Sub
[解决办法]
一、在VB中使用OWC组件
引用Office Web Component组件到项目中(ProjectàComponents)
选择Microsoft Office Web Components 11.0,点击应用将会在工具栏中出现五个组件,
分别为ChartSpace、SpreadSheet、DataSourceControl、RecordNevigationControl、PivotTable。本文档仅就SpreadSheet的相关操作进行说明,其余请参考《Microsoft Office Web组件Visual Basic参考》。
二、通过可视化配置设定OWC的呈现效果及相关属性
可以通过设定命令和选项来更改OWC呈现的相关设置(在SpreadSheet上点击右键调出)
通过设定格式、工作表、工作簿等选项,将OWC的SpreadSheet显示格式设定为如下图所示样式,其中列表头是不显示的,采用第一列充当表头,并且锁定第一行的区域,使得表头可以始终呈现给用户(实现该步骤,只需要将鼠标选中第二行,并设定格式中的单元格à锁定,如上图所示小锁头符号)。
还需要在属性设定中设定其是否显示TitleBar、ToolBar、OfficeLogo等。
附1:
要实现类Grid效果,则应不允许插入列、删除列等。可以设定保护得到效果。
不过,不建议在设计时就做保护的设定。因为程序运行过程中会对SpreadSheet做数据填充或呈现样式修改等动作,就必须先要取消SpreadSheet的保护效果,在代码上有些冗余。所以建议在运行中动态调整保护的选项,可以通过SpreadSheet.ActiveSheet.Protect()方法设定。
附2:
如何设定单元格的值类型?
方法一、可以通过设定格式中的数字格式设定一列或某单元格的值类型。
方法二、代码实现,可以在Excel中录制宏得到VBS代码
''@ means Text ; '0.00000_ ' means numeric ; '0_ ' means integer
Me.xlSpreadsheet.ActiveSheet.Range("A:B").NumberFormat = "@"
Me.xlSpreadsheet.ActiveSheet.Range("C:C").NumberFormat = "0.00000_ "
Me.xlSpreadsheet.ActiveSheet.Range("D:K").NumberFormat = "@"
Me.xlSpreadsheet.ActiveSheet.Range("L:N").NumberFormat = "0_ "
注意:0_后面还有一个空格,这个是不可少的。
附3:
第一行作为Title,则Title不允许在运行时被User修改,所以需要Lock该行,可以通过设计时设定,也可以在运行时动态控制
''''Lock the Title, can not be modified
xlSpreadsheet.ActiveSheet.Range("A1:B1").Locked = True
三、呈现数据、读取数据、更改呈现样式等操作方式
1:呈现数据
SpreadSheet的数据来源可以有三种,分别为CSV Data、XML、Html,分别对应方法为CSVData/CSVURL、XMLData/XMLURL、HTMLData/HTMLURL。不过这仅限于比较规则的二维表结构的数据。
一般的还是采用逐行设定值的方式。
xlSpreadsheet.ActiveSheet.Cells(intRowCounter, intColCounter).Value
注意:不管采用哪种方式,都需要先将SpreadSheet锁定区域解锁,才能将值设定上去。
2:读取数据
从SpreadSheet上读取数据的方式与呈现数据方式类似,直接采用逐行逐列方式读取。
3:更改呈现样式
SpreadSheet的样式设定非常灵活,可以设定一行、一列、多行、多列、选定单元格等的样式。其动态设定方式分别为如下所示:
''''设定一列的背景颜色,可以通过下面几种方式
xlSpreadsheet.ActiveSheet.Columns(1).Interior.Color = vbRed 或
xlSpreadsheet.ActiveSheet.Columns(1).Interior.ColorIndex = 10 或
xlSpreadsheet.ActiveSheet.Range("A:A").Interior.Color = vbRed 或
''''设定一列的字体颜色,可以通过下面几种方式
xlSpreadsheet.ActiveSheet.Columns(1).Font.Color = vbRed 或
xlSpreadsheet.ActiveSheet.Columns(1).Font.ColorIndex = 10 或
xlSpreadsheet.ActiveSheet.Range("A:A").Font.Color = vbRed
''''设定一行的背景、字体颜色,可以通过下面几种方式
xlSpreadsheet.ActiveSheet.Rows(1).Interior.Color = vbRed 或
xlSpreadsheet.ActiveSheet.Rows(1).Interior.ColorIndex = 10
xlSpreadsheet.ActiveSheet.Rows(1).Font.Color = vbRed 或
xlSpreadsheet.ActiveSheet.Rows(1).Font.ColorIndex = 10
''''设定多行或多列的背景、字体颜色,类似
''''设定选定单元格的背景、字体颜色,如下
xlSpreadsheet.ActiveCell.Interior.Color = vbRed 或
xlSpreadsheet.ActiveCell.Interior.ColorIndex = 10
xlSpreadsheet.ActiveSheet.Cells(1,1).Interior.Color = vbRed
''''设定一列隐藏
xlSpreadsheet.ActiveSheet.Columns(1).Hidden = True