利用office web component打造精品图表(二)

原创 2003年12月22日 09:54:00

利用office web component打造精品图表()    

OWC介绍:

Microsoft Office 2000中包含有一组称为OWC的新控件集合。利用这些组件,可以在WEB浏览器以及其他传统的编程环境下创建许多有用的数据分析解决方案与报表生成解决方案。

Office Web Component是一组COM(Component Object Model:组件对象模型)控件的集合,用于为多种控件容器提供交互式的电子数据表模型、数据库报表与数据可视化服务。

OWC库中包含四个主要组件:Spreadsheet(电子数据表)组件、Chart(图表)组件、PivotTable(数据透视表)组件、Data Source(数据源)组件。

Office Web Components的非凡之处在于它们可以在诸如Web页面、Visual Basic表单等的控件容器中使用,也可在内存中作为不可见对象使用。大多数COM控件只能在控件容器中作为可视控件使用,而大多数不可见对象则只能在内存中使用,而不能放入表单中或Web页面中。OWC库中的组件可以以以上两种方式被使用,从而使得用户可以以界面方式引用控件,或者使控件为其提供基本服务。以不可见对象方式使用组件的能力也可以方便的在服务器上使用这个库,从而轻易的产生在任何Web浏览器上查看静态内容。

OWC中的所有控件都支持丰富的编程接口集合,使得开发者可以通过Microsoft VBScriptMicrosoft JscriptMicrosoft VBAJavaC++与任何其他可调用双向或快速COM接口的语言来调用这些控件。

Chart组件:

Chart组件是一个由开发Microsoft Excel 2000中图表制作的开发人员创建的一个COM控件。它能以屏幕上COM控件与内存中GIF生成引擎两种方式提供基本的商业图表制作方法。

OWC9中,Chart控件除支持Excel中的所有二维图表类型(Contour类型除外)外,还支持Polar型、Stacked Pie型、Filled Scatter型的图表。但是不包含对任何三维图表类型或效果的支持。

       Office2000提供的Office Web Component的版本为9.0(OWC9)

OfficeXP提供的Office Web Component的版本为10.0(OWC10)

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在以后的系列教程中,我们以sqlserver中的northwind数据库为例子,深入浅出的来介绍MS OWC,所有的例子直接可以运行。

 

我们通过一个例子来展现owc的强大功能.    

CHART.ASP程序。

<%  Option  Explicit  %>

<!--#include  file="adovbs.inc"-->

<HTML>

<HEAD>

<TITLE>利用MS office web component打造精品图表</TITLE>

<%

Function  ExportChartToGIF(objCSpace,  strAbsFilePath,  strRelFilePath)

Dim  strFileName

Randomize  

strFileName  =  Timer  &  Rnd  &  ".gif"

objCSpace.ExportPicture  strAbsFilePath  &  "/"  &  strFileName,  "gif",  650,  400

ExportChartToGIF  =  strRelFilePath  &  "/"  &  strFileName

End  Function

 

Sub  CleanUpGIF(GIFpath)

Dim  objFS

Dim  objFolder

Dim  gif

set  objFS  =  Server.CreateObject("Scripting.FileSystemObject")

set  objFolder  =  objFS.GetFolder(GIFpath)

for  each  gif  in  objFolder.Files

if  instr(gif.Name,  ".gif")  >  0  and  DateDiff("n",  gif.DateLastModified,  now)  >  10  then

objFS.DeleteFile  GIFpath  &  "/"  &  gif.Name,  True

end  if

next

set  objFolder  =  nothing

set  objFS  =  nothing

End  Sub

 

%>

</HEAD>

<BODY  BGCOLOR="#FFFFFF">

<div  align="center">

<br>

<br>

<%

 

dim  objChartSpace

dim  objChart

dim  objSeries

dim  objConn

dim  objRS

dim  c

dim  series

dim  strChartAbsPath

dim  strChartRelPath

dim  strChartFile

dim  axis

dim  fnt

dim  ax

 

strChartAbsPath  =  Server.MapPath(".")

strChartRelPath  =  Server.MapPath(".")

'设置组件

'使用了owc9,也就是office 2000中带的

set  objChartSpace  =  Server.CreateObject("OWC.Chart.9")

set  objChart  =  objChartSpace.Charts.Add

set  c  =  objChartSpace.Constants

 

'图形边框颜色

objchart.Border.Color="red"

'以柱状图显示

objchart.type=1

objChart.HasLegend  =  True'是否显示图例

objChart.HasTitle=true  '显示标题

objChart.Title.Caption  ="利用office web component打造精品图表(www.ourfly.com中文技术网站)"  

set fnt=objchart.title.font

fnt.name="宋体"

fnt.size=12

fnt.bold=true

fnt.color="red"

 

set  objConn  =  Server.CreateObject("ADODB.Connection")

objConn.Open  "provider=SQLOLEDB; Data Source=yang; Initial Catalog=northwind; User Id=sa; Password="

 

set  objRS  =  Server.CreateObject("ADODB.Recordset")

set  objRS.ActiveConnection  =  objConn

objRS.CursorType  =  adOpenStatic

objRS.CursorLocation  =  adUseClient

'统计每种供应货物的数量有多少

objRS.Open  "select count(productname) as col,
CategoryName from products,categories whereproducts.categoryid=categories.categoryid
group by categoryname"

 

set  objChartSpace.DataSource  =  objRS

'显示图例内容

objChart.SetData  c.chDimSeriesNames,  0,  "CategoryName"

for  each  objSeries  in  objChart.SeriesCollection

objSeries.SetData  c.chDimCategories,  0,  "CategoryName"

objSeries.SetData  c.chDimValues,  0,  "col"

next

 

set ax=objChart.Axes(c.chAxisPositionBottom)

ax.hastitle=true

ax.Title.Caption  =  "种类"

set fnt=ax.title.font

fnt.name="宋体"

fnt.size=15

fnt.bold=true

fnt.color="blue"

 

set ax=objChart.Axes(c.chCategoryAxis)

ax.hastitle=true

ax.Title.Caption  =  "数量"

set fnt=ax.title.font

fnt.name="宋体"

fnt.size=15

fnt.bold=true

fnt.color="green"

 

strChartFile  =  ExportChartToGIF(objChartSpace,  strChartAbsPath,  strChartRelPath)

Response.Write  "<IMG  SRC="""  &  strChartFile  &  """>"  &  "<P>"

CleanUpGIF  strChartAbsPath

 

objRS.Close

set  objRS  =  nothing

set  objConn  =  nothing

set  objSeries  =  nothing

set  objChart  =  nothing

set  objChartSpace  =  nothing

%>

</div>

</BODY>

</HTML>

 

使用这个组件的注意事项:
1
。在office2000的光盘上,有一个msowc.msi的可执行文件
.OK
2
。建议大家用visual  interdev6.0开发,代码的自动提示功能
此时会发挥出极大的作用。


效果图如下:

利用office web component打造精品图表

function StorePage(){ d=document; t=d.selection?(d.selection.type!=None?d.selection.createRange().te...
  • johnsonTj
  • johnsonTj
  • 2005年02月24日 22:07
  • 1390

利用office web component打造精品图表(一)

大家在编写ASP程序的时候,可能要对各种指标以图形的方式显示出来。如果仅仅是柱状图,可以采用画表格的方法。许多投票程序多采用这种方法。如果是饼状图或从数据库中检索数据后再显示,就有些困难了.办法也有,...
  • online
  • online
  • 2003年12月22日 09:54
  • 2603

利用office web component打造精品图表(二) 选择自 online 的 Blog

OWC介绍:Microsoft Office 2000中包含有一组称为OWC的新控件集合。利用这些组件,可以在WEB浏览器以及其他传统的编程环境下创建许多有用的数据分析解决方案与报表生成解决方案。Of...
  • galaxywaif
  • galaxywaif
  • 2005年02月06日 22:46
  • 533

Web 组件和控件(Office Web Component)

转自:http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/modcore/html/deoriwebcomponet...
  • chiefsailor
  • chiefsailor
  • 2007年05月18日 16:12
  • 2583

利用office web component打造精品图表(一) 选择自 online 的 Blog

大家在编写ASP程序的时候,可能要对各种指标以图形的方式显示出来。如果仅仅是柱状图,可以采用画表格的方法。许多投票程序多采用这种方法。如果是饼状图或从数据库中检索数据后再显示,就有些困难了.办法也有,...
  • galaxywaif
  • galaxywaif
  • 2005年02月06日 22:44
  • 595

做精品产品需要有心与用心

一直梦想着打造一个精品产品,有时觉得这与利益无关,只是一种精神上的享受,或者是一种成就感的体现,人生在世,是强烈需要做一些/一个有意义的事情的,否则真的象毛爷爷所说的“轻如鸿毛”,阿蒙仍然属于年轻的一...
  • harrymeng
  • harrymeng
  • 2013年03月19日 06:43
  • 2087

Edraw Office Viewer Component

测试了两天,他的demo比我们自己处理的强太多了,自己做的有太多的打不开和各种问题   Edraw Office Viewer Component V8.0.0.812 Relea...
  • kaizi318
  • kaizi318
  • 2017年05月18日 08:57
  • 1969

安装Office 2016 出现 Office 16 Click-to-Run Extensibility Component

搜了无数资料终于得到结果了,这样解决就行 解决方案:按下win+R键,打开运行,输入regedit,打开注册表,依次定位到 HKEY_CLASSES_ROOT\Installer\Produ...
  • chaoyangzhixue
  • chaoyangzhixue
  • 2015年12月21日 15:07
  • 12485

如何用owc(office web component)画图表

前段时间公司要用owc做图表,就研究了一下,发现这方面的资料很少,就贴个代码出来大家研究研究。public partial class frmChartShow : Form    {        ...
  • zdwkl
  • zdwkl
  • 2008年01月03日 18:36
  • 1103

office2010/2013/2016安装过程提示问题Office 16 Click-to-Run Extensibility Component

此种问题在我们安装office过程中经常出现 对策: ①安装通用版本office2007可以解决 ②运行-输入regedit,打开注册表,依次定位到 HKEY_CLASSES_ROOT\Inst...
  • djl0128
  • djl0128
  • 2017年04月23日 13:16
  • 2150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用office web component打造精品图表(二)
举报原因:
原因补充:

(最多只允许输入30个字)