阿泰的软件实用主义

水晶报表/BOE

博客园 首页 新随笔 联系 订阅 管理
  182 Posts :: 9 Stories :: 2211 Comments :: 39 Trackbacks


OWC==> Office Web Components
是微软Office的轻量级开发工具,随Office安装时一起安装
Office2003版本对应OWC11,里面有5个控件对象

图表工作区对象

数据源控件对象
记录集控件对象

数据透视表列表对象

电子表格对象

很久以前用过的,最近有人问就翻出来看看
其实很简单,只是可能没有到注意文档罢了
我简单用VB做了下常用的SpreadSheet例子


Form上加一个Spreadsheet控件

代码,很简单,没什么好说的

Private Sub Form_Load()
    
    
'单元格
    '可以使用循环的方式填充单元格
    Spreadsheet1.Cells(11= "第1个格"
    Spreadsheet1.Cells(15= "第5个格"
    '区域
    '合并
    Spreadsheet1.Range("A3:D3").Merge
    Spreadsheet1.Range(
"A3:D3").Value = "合并效果"
    '格式设置
    Spreadsheet1.Range("A3:D3").Font.Name = "黑体"
    Spreadsheet1.Range("A3:D3").Font.Size = 15
           
    Spreadsheet1.Range(
"A3:D3").Borders(xlEdgeTop).Color = vbRed
    Spreadsheet1.Range(
"A3:D3").Borders(xlEdgeBottom).Color = vbRed
    Spreadsheet1.Range(
"A3:D3").Borders(xlEdgeLeft).Color = vbRed
    Spreadsheet1.Range(
"A3:D3").Borders(xlEdgeRight).Color = vbRed
    
''    '不提示直接保存为本地文件
'
'    Spreadsheet1.Export "c:\xxx.xls", ssExportActionNone
'
'    '直接在Excel中打开
'
'    Spreadsheet1.Export "c:\xxx.xls", ssExportActionOpenInExcel
End Sub


运行出来就是这个样子


因为整个编程中使用了VBA语法,所以还是很容易理解的
如果你的机器上安装了Office2000/xp/2003
那么你的机器上已经有使用文档及开发文档了,很详尽,参照一下,应该没啥问题。

我的机器装的是2003,在如下位置上有相关文档
C:\Program Files\Common Files\Microsoft Shared\Web Components\10\2052

C:\Program Files\Common Files\Microsoft Shared\Web Components\11\2052

前面的文档都是使用帮助
OWCVBA11.CHM 是开发文档

文本的小例子在此处下载 ,VB的
http://files.cnblogs.com/babyt/Owc1.rar

 

posted on 2005-04-14 23:50 阿泰 阅读(12099) 评论(44)  编辑 收藏 网摘

Feedback

谢谢,赶快保存下来仔细研究一下。
  回复  引用    

#2楼  2005-04-19 16:27 fred [未注册用户]
用OWC的公司多吗?
我公司现在都是用spread 6
网格数据处理及报表都是这个。

你对OWC的使用有更深次的相关资料吗?
hell0_lin@21cn.com
  回复  引用    

#3楼  2005-04-19 16:28 fred [未注册用户]

hello_lin@21cn.com
  回复  引用    

#4楼 [楼主] 2005-04-19 16:40 阿泰      
用的多少这个让我怎么说呢?老实说我不知道
自己用着合适就好,管别人干啥,呵呵
我们在项目中用过多次,作为轻量级的图表应用,是很合适的
特别是SpreadSheet和Chart,
而且应用程序和WEB开发都可以
基于VBA的语法,开发起来很方便。

至于文档,微软自带的足矣,俺就是靠这几个文档打天下的。
^_^
  回复  引用  查看    

#5楼  2005-05-27 17:31 delbrueck [未注册用户]
阿泰,我又来麻烦你了
我对vba一点都不懂,就会录制个宏慢慢看,可是宏的代码总是非常的复杂。
我想问个编程方面的问题:如何判断spreadsheet中的哪个cell被选中了,我很菜,请指导阿。
  回复  引用    

#6楼  2005-05-27 17:35 delbrueck [未注册用户]
我很茫然,一点头绪也没有,经理又要我一周时间就要完成一个基于owc的报表工具。
现阶段的主要难点是如何把数据库里面的字段拖到owc里面,着急中。
  回复  引用    

#7楼 [楼主] 2005-05-27 17:47 阿泰      
在报表中应该是用不到如何判断哪个cell被选中这种情况的吧?
我也没做过,呵呵
不过当前选中的cell使用ActiveCell可以进行相关的操作
我不太明白为什么要把数据库的字段拖到owc中,是要做产品吗?
你可以参考微软的
http://www.microsoft.com/china/msdn/library/office/office/UndstaExcelObjModNETDev.mspx
我有时间也帮你找找别的资料
  回复  引用  查看    

#8楼 [楼主] 2005-05-27 17:58 阿泰      
竟然是可以的,呵呵
建立一个宏,设置快捷键 Ctrl+D

内容如下
'-------------------------------
Sub Macro1()
'
' Macro1 Macro
' 宏由Babyt录制,时间: 2005-5-27
'
MsgBox ActiveCell.Address

End Sub
'-------------------------------
就可以得到该cell的位置,如 $C$7
这样就可以进行操作了
  回复  引用  查看    

#9楼  2005-05-27 19:53 delbrueck [未注册用户]
55555,感谢阿,现在还有一个问题,vba怎么移植到vb中呢?
真正开始做东西才知道这么麻烦。
  回复  引用    

#10楼 [楼主] 2005-05-29 20:05 阿泰      
在VB工程中增加Excel的引用
Microsoft Excel 10.0/11.0 Object Library
在程序中定义一个Excel对象即可在此对象的基础上使用VBA中的语法
  回复  引用  查看    

#11楼  2005-05-30 09:51 delbrueck [未注册用户]
谢谢
  回复  引用    

#12楼  2005-06-11 10:38 123 [未注册用户]
如何连接到数据库,且可SELECT
  回复  引用    

#13楼  2005-06-11 10:39 231 [未注册用户]
在数据源中可以但如何编程控制SELECT*FROM ... WHERE???
  回复  引用    

#14楼  2005-06-23 11:37 delbrueck [未注册用户]
阿泰,如果使用OWC,那么公式的问题怎么解决呢?
我做的程序不断向EXCEL里面写记录,然后在记录的后面加上例如求和,求平均之类的公式,应该怎么做呢?记录的条数是不确定的。
1:把公式写在EXCEL里面,然后写记录的时候动态的修改公式里面的坐标。
2:只是在EXCEL里面添加一些表明公式类型的标签,在写入记录的时候计算好结果,写入EXCEL中
那种方法好一些呢?
  回复  引用    

#15楼 [楼主] 2005-06-23 20:40 阿泰      
仍然使用类似VBA的方式,跟踪你填充后数据所在的cell
将公式写在这里即可
你同样可以用宏来模拟设置公式的方法 :)
  回复  引用  查看    

#16楼  2005-06-29 10:34 delbrueck [未注册用户]
谢谢了,我已经解决了:D
现在经理又提了一个要求,左边是TreeView,右边是OWC,他想从左边的树拖到右边的OWC中,怎么才能实现呢?
  回复  引用    

#17楼 [楼主] 2005-06-29 12:27 阿泰      
这个应该比较简单,当树拖动到OWC控件上时候处理这个事件
按照树的层次深度写如Cell即可。
应该不难,就是会烦点
  回复  引用  查看    

#18楼  2005-06-30 11:29 delbrueck [未注册用户]
可是如何判断拖入到哪一个单元格中呢?
  回复  引用    

#19楼  2005-07-28 15:10 Jiang [未注册用户]
请教阿泰一个问题:
将SpreatSheet控件放在Web界面上的时候,后台连接的是一个XML Spreat格式的数据表,怎样在Web 界面上对SpreatSheet中所做的修改保存,不导入Excel或者导入Excel但是那个导入的界面用户看不到,希望你能够回答,也希望知道的朋友及时与我联系,QQ:54373175上面注明OWC11讨论。谢谢大家.
  回复  引用    

#20楼  2005-08-25 15:11 ice-cream [未注册用户]
想问一个Delphi封装的Owc控件的问题:
使用SpreatSheet部分机器会产生乱码的问题,试图增加SpreatSheet的XMLData属性中的enoding,可是它提示为只读,是不是要从哪个文件中修改呢?
  回复  引用    

#21楼  2005-11-10 15:44 holly [未注册用户]
SpreatSheet控件
为什么不能直接打印的? 唯有导到EXCEL中吗?
Email:
drk928@163.com
  回复  引用    

#22楼  2005-11-19 13:54 火星的森林      
marsforest@yeah.net
留个名先
  回复  引用  查看    

#23楼  2005-12-02 13:47 业务性 [未注册用户]
谢谢,我正在使用spreadsheet编程序,你的帮助是我受益匪浅,谢谢
  回复  引用    

#24楼  2005-12-02 15:13 张平 [未注册用户]
问:
C#的例子有吗? 给我一个看看,谢谢!
  回复  引用    

#25楼  2005-12-06 11:00 luocc [未注册用户]
请问用owc能把页面设置成横向打印吗?????
  回复  引用    

#26楼  2005-12-07 22:40 yanwx [未注册用户]
朋友好:我有个问题已经困扰我很多天了,希望能得到你的帮助
1,使用spreadsheet,单元个内的文本怎样实现自动换行
2,怎样锁定行高、列宽,让别人不能动
3,使用函数怎样实现窗口的冻结或拆分

谢谢了
拜托

  回复  引用    

#27楼  2005-12-12 11:33 yanwx [未注册用户]
哪里有vb spreadsheet控件的使用的书籍,我很想得到这方面的帮助
  回复  引用    

#28楼  2006-01-11 13:59 CityShark [未注册用户]
Spreadsheet控件 怎么设置单元格的数据格式,比如我要设置为 文本格式,这样即使有一大串的数字也不会再用科学计数法来显示了吧
希望哪位热心人能把答案发给我
whadn@163.com
QQ:11721077
  回复  引用    

#29楼  2006-01-19 15:54 qw [未注册用户]
Spreadsheet控件 怎么设置单元格的数据格式,比如我要设置为 文本格式,这样即使有一大串的数字也不会再用科学计数法来显示了吧
希望哪位热心人能把答案发给我

我也有这个问题,无法解决,我是在数字前面加一个“\"实现的
不知那位高人能够帮助解决

yanwx@petrochina.com.cn

谢谢
  回复  引用    

#30楼  2006-02-28 09:18 jsm [未注册用户]
如果打开一个存在的excel文件并进行编辑呢?
  回复  引用    

#31楼  2006-03-01 21:36 老五 [未注册用户]
版主,你好!
请问如何才能把一个己有的excel文件对象给打开来用spreadsheet来编辑?
我刚刚接触owc组件,急须,我还是学生,我毕业设计就是用这个来做的,在网页上编写代码,需要把一段EXCEL表格导入到数据库!


麻烦各位前辈指点迷津!
我的邮箱:JDdoor@Gmail.com
Q Q: 112605936

  回复  引用    

#32楼  2006-03-09 12:33 ww [未注册用户]
为什么不支持C#变成呀??????
  回复  引用    

#33楼  2006-03-09 12:35 ww [未注册用户]
单元格
Spreadsheet1.Cells(1, 1) = "第1个格" ;
Spreadsheet1.Cells(1, 5) = "第5个格" ;
等都不生效呀.
  回复  引用    

#34楼  2006-03-20 09:54 linyihe [未注册用户]
在Excel中的窗体CommandButton1_Click()中

str1 = "dfdfdfdf"
Spreadsheet1.Cells(2, 1) = str1

一运行就报"运行时错误,无效参数"

直接用Spreadsheet1.Cells(2, 1) = "dfdfdfdf"是行的!

到底是怎么回事?请指教
linzhili001@paic.com.cn


  回复  引用    

#35楼  2006-04-18 13:31 sonyejin [未注册用户]
怎么在WEB页面中引用类似excel的事件啊,在aspx中为什么表格事件属性全都没有了
  回复  引用    

#36楼  2006-04-20 11:10 老肖 [未注册用户]
和您的程序类似,但是我想在spreedsheet显示图片,翻了半天文档也没找到方法,不知道您遇到过这个问题么?
  回复  引用    

#37楼  2006-04-23 09:26 ludy [未注册用户]
阿泰
我需要在asp里面调用owc作图 麻烦给点指点
现在提示错误
错误类型:
Microsoft VBScript 运行时错误 (0x800A01AD)
ActiveX 部件不能创建对象: 'OWC11.Chart'

我已经安装了owc11.exe 不知道是怎么回事
请指教一下 我的邮箱是ludy.yuan@hotmail.com
谢谢
  回复  引用    

阿泰你好,
我想问你一下,你可知道owc和reporting services的区别?
谢谢!
  回复  引用    

#39楼  2007-05-08 11:21 lv [未注册用户]
如何在出现断点的情况下画出下一条折线呢?我的意思是空几个点出来再画一条折线.....
期待中,困扰好久了....
  回复  引用    

我想用spreadsheet做个表格,不知道是不是可以用这个控件直接导入xml文件呢,因为它有一个export方法,可以导出为xml文件.我查了它的所有方法发现都没有发现导入这个功能,但是它里面却又可以导入的,啊泰知道如何在代码中实现导入xml文件吗?谢谢啊
  回复  引用    

#41楼 [楼主] 2007-06-27 20:59 阿泰      
1:首先保证你用的是OWC11版本
2:注意你的XML文件的格式,不是所有的格式都能被支持的。严格说就是只支持指定格式,你可以把你的Excel文件另存为xml文件,然后看下格式规定
3:仍以vb6的使用为例,你导入spreadsheet控件后,使用如下代码即可导入xml文件(注意格式)

Spreadsheet1.XMLURL = App.Path & "\test.xml"

以下文章可能对你进一步的工作有所帮助 ^_^
http://www.microsoft.com/china/msdn/library/office/office/xl2k3xmllist.mspx?mfr=true

  回复  引用  查看    

非常感谢,嘿嘿
为什么我查它的帮助文件会找不到这个方法呢。..郁闷啊。.
  回复  引用    

#43楼 [楼主] 2007-06-28 22:08 阿泰      
呵呵,多用编程工具的自动联想功能,我也是“.”出来的:)
  回复  引用  查看    

#44楼  2007-10-03 21:36 xsj [未注册用户]
SpreatSheet控件
能不能直接打印?
  回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-11-09 23:58 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘.Net开发工程师

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: