AxMicrosoft.Office.Interop.Owc11.AxSpreadsheet控件在C#中的引用
这几天要是用AxMicrosoft.Office.Interop.Owc11.AxSpreadsheet控件做查询,发现一系列问题,一点点记录下来吧,以备后查:
第一、相关属性:http://www.cnblogs.com/phenix3/articles/105308.html
Office web component learning ---- Spreadsheet learning
一、Spreadsheet 对象
说明:表示电子表格的容器。
******************
属性:
*******************
1、ActiveCell:返回代表活动单元格的Range只读对象。
2、ActiveSheet:返回代表活动工作表的WorkSheet只读对象。
3、ActiveWindow:返回表示当前窗口的Window对象。
4、ActiveWorkbook:返回表示打开工作簿的Workbook对象。
5、AllowPropertyToolbox:确定用户是否可以在运行时显示“命令和选项”对话框。boolean类型。
6、Application:有两种情况,a)应用于OWCLanguageSettings对象时,返回表示指定Web Component的Obejct对象;b)返回表示电子表格控件的Spreadsheet对象
7、AutoFit:对于Spreadsheet或者PivotTable对象,如果由可见的行列数确定电子表格的总体大小,则设置为True。行高和列宽不能超过电子表格或数据透视表列表的 MaxHeight 和 MaxWidth 属性值。默认值为 True。如果将 AutoFit 属性设置为 False,则电子表格或数据透视表列表的总体大小由 Width 和 Height 属性设置。Boolean 类型
8、Build:返回一个Long类型,表示Web Components的编译号,只读。
9、BuildNumber:返回内部版本号。String类型,只读。
10、Calculation:返回或设定指定计算模式的XlCalculation常量。
11、CalculationVersion:返回long型的Web Components版本号
12、CanUndo:如果有可以撤销的前一步操作,则返回True。只读
13、Caption:返回或设定对象的标题,string类型
14、Cells:返回一个表示对象中单元格的Range对象
15、Columns:应用在Range对象上时表示返回代表指定区域中列的Range对象,只读。应用在spreadsheet和worksheet对象时,返回代表指定工作表上所有列的Range对象
16、Commands:返回一个OCCommands对象,表示可用命令集合
17、Constants:返回允许脚本用户使用命名常量的对象,只读。在HTML页上是必须的
18、CSVData:以逗号分隔列表返回或设置电子表格数据,String类型。
19、CSVURL:返回或设置以逗号分隔的电子表格数据文件的URL。
20、DataMember:返回或设置数据成员名称(指定控件将从数据源请求获取的记录集名称),DataMember类型。
21、DataSource:返回或设置表示指定控件数据源的ADO DataSource对象。
22、DataType:指定电子表格数据格式和来源。HTMLURL,HTMLDATA,CSVURL,CSVDATA
23、DefaultQueryOnLoad:该属性设置为true时,加载页面时将刷新Purpose属性值为"Query"并且LoadMode属性值为"Normal"的绑定。设置False时,加载页面时不刷新任何绑定。
24、DesignMode:如果电子表格控件当前处于设计模式,则返回True。
25、Dirty:如果自上次保存后对电子表格进行了更改,则返回True。可读写
26、DisplayDesignTimeUI:设置为True在运行时显示“命令和选项”窗口的设计阶段版本,默认为False。
27、DisplayOfficeLogo:设置为True可在工具栏上显示Office Logo。
28、DisplayPropertyToolbox:设置是否可显示“命令和选项”窗口。
29、DisplayTitleBar:设置是否可显示标题栏。
30、DisplayToolbar:设置是否可显示工具条。
31、EnableEvents:如果启用了电子表格工作区的事件,则返回True,可读写。
32、EnableUndo:设置是否启用电子表格撤销功能。
33、HTMLData:返回或设置一个String类型,以正确格式的HTML字符串表示电子表格数据。
34、HTMLURL:返回或设置电子表格HTML数据文件的URL。
35、International:返回当前国家/地区和国际设置信息。Variant类型,只读。
36、LanguageSettings:返回一个OWCLanguageSettings对象,包含语言设置信息。
37、MajorVersion:返回对象库德主要版本,只读。
38、MaxHeight:返回或设置指定工作表在AutoFit属性值为True时能够达到的最大高度。可用像素表示也可以用百分比表示。Variant类型。
39、MaxWidth:返回或设置指定工作表在AutoFit属性值为True时能够达到的最大宽度。
40、MinorVersion:返回对象库德次要版本,String类型,只读。
41、MoveAfterReturn:确定用户按Enter后是否移动活动单元格。默认为True。使用MoveAfterReturnDirection属性确定移动方向。
42、MoveAfterReturnDirection:返回或设置当前用户按Enter且MoveAfterReturn属性设置为True时焦点移动的方向。XlDirection类型。
43、Name:返回或设置指定对象的名称。
44、Names:应用于Spreadsheet和workbook对象时返回表示活动工作簿中所有名称的Names集合,只读。应用于Worksheet对象时返回表示指定工作表中定义的所有工作表级名称的 Names 集合。只读。
45、Range:返回一个Range对象,表示单元格或矩形单元格区域。
46、RevisionNumber:返回修订号。
47、RightToLeft:如果启用从右到左语言支持,则返回True。
48、Rows:应用于Range对象返回一个表示指定区域中所有行的Range对象。应用于spreadsheet对象,返回一个表示活动工作表中所有行的Range对象。应用于Worksheet对象,返回一个表示指定工作表上所有行的Range对象。
49、ScreenUpdating:如果屏幕更新处于打开状态,则返回True。可读写。
50、Selection:返回一个Range对象,表示选定单元格。
51、Sheets:应用于spreadsheet对象,返回表示活动工作簿中所有工作表的Sheets集合。应用于workbook,返回表示指定工作簿中所有工作簿的sheets集合。
52、TitleBar:返回表示指定电子表格标题的TitleBar对象。
53、ToolBar:返回一个MSComctlLib.Toolbar对象,表示工具栏。
54、Value:返回指定对象的名称或值。
55、Version:返回版本,String类型。
56、ViewOnlyMode:如果处于只读模式,返回True。
57、Windows:返回一个windows集合,表示打开工作簿中的窗口。
58、Workbooks:返回一个表示打开工作簿的 Workbooks 集合。
59、Worksheets:返回一个 Worksheets 集合,表示打开工作簿中的工作表。
60、XMLData:返回或设置指定组件的 XML 数据。String 类型,可读写。
61、XMLURL:返回或设置一个 String 类型,表示可扩展标记语言 (XML) 文件的 URL。
*************
方法
*************
1、AddIn:在指定的电子表格中添加加载项。
2、BeginUndo:指定撤销块的开始。这意味着从该调用到与其相对应的 EndUndo 方法调用之间的所有语句均可在对 Undo 方法的一次调用中撤消。这样可以将整个宏合并为一个语句,以便于撤消。撤消块可以嵌套。
3、Calculate:计算打开的工作簿、工作簿中的指定工作表或工作表上的指定单元格区域。
4、CalculateFull:强制打开的工作簿上的公式重新计算
5、EndUndo:指定撤消块的结束。这意味着从该调用到与其相对应的 BeginUndo 方法调用之间的所有语句均可在对 Undo 方法的一次调用中撤消。这样可以将整个宏合并为一个语句,以便于撤消。撤消块可以嵌套。
6、Evaluate:计算文本形式的表达式并返回结果。
7、Export:将spreadsheet导出到文件
8、FireParameterOut:使用此方法可触发 ParametersOutReady 事件。
9、RectIntersect:返回表示指定区域之间矩形交集的 Range 对象。
10、RectUnion:返回一个 Range 对象,表示指定区域联合中的最小单元格区域。
11、Refresh:刷新指定对象。
12、Repaint:强制重绘指定对象。
13、ShowAbout:显示“关于”对话框。
14、ShowContextMenu:在指定屏幕坐标显示自定义上下文菜单。
15、ShowHelp:显示 PivotTable 或 Spreadsheet 控件的主帮助主题。
16、Undo:撤消上一次操作或上一个位于 BeginUndo 和 EndUndo 方法调用之间的宏块。
17、UpdatePropertyToolbax:以当前选定对象更新“命令 和选项”窗口。
*****************
事件
****************
1、BeforeContextMenu:在显示上下文菜单之前发生。用户单击鼠标右键或按下应用键将显示上下文菜单。
2、BeforeKeyDown:在用户按下键盘上的键之后、控件处理键击之前发生。如果用户将键按住,该事件将按照用户计算机上设置的键击重复间隔重复发生。
3、BeforeKeyPress:在用户按下并释放键盘上的键之后、控件处理键击之前发生。如果用户将键按住,该事件将按照用户计算机上设置的键击重复间隔重复发生。
4、BeforeKeyUp:在用户释放键盘上某个键之后、控件处理该键击之前发生。
5、BindingAdded:在通过 Edit Query 命令添加新的或修改现有的 XmlDataBinding 对象时发生。
6、BindingCompleted:在通过 Refresh 或 Update 方法将数据成功地加载到映射中或从映射中导出时发生。
7、BindingDeleted:在删除新XmlDataBinding对象时发生。
8、BindingError:在由于调用 Refresh 或 Update 方法而从数据源处收到错误时发生。
9、BindingUpdated:在现有 XmlDataBinding 对象的 BindingData 属性发生更改时发生。
10、Click:在用户单击指定控件时发生。
11、CommandBeforeExecute:在执行命令之前发生。如果要在执行命令之前加以指定限制,请使用该事件。
12、CommandChecked:在指定Microsoft Office Web Component 确定命令是否选中时发生。
13、CommandEnabled:在启用指定 Microsoft Office Web Component 命令时发生。
14、CommandExecute:在执行命令之后发生。如果要在执行特定命令之后执行一系列命令,请使用该事件。
15、CommandTipText:在指定 Microsoft Office Web Component 查询命令的屏幕提示文本时发生。
16、DblClick:在用户双击指定控件时发生。
17、EndEdit:当用户从编辑模式切换到指定 Spreadsheet 控件或数据透视表列表时发生。使用该事件可以对工作表或数据透视表列表明细区域中的数据项进行有效性验证。
18、Initialize:在 Spreadsheet 组件正在加载、加载完成之前发生。
19、KeyDown:在用户按下键盘上的键之后发生。如果用户将键按住,该事件将按照用户计算机上设置的键击重复间隔重复发生。
20、KeyPress: 在用户按下并释放键盘上的键后发生。
21、KeyUp: 在用户释放键盘上的键之后发生。
22、LoadCompleted: 在 Spreadsheet 组件完成加载之后发生。
23、MouseDown: 当用户在指针位于电子表格、数据透视表列表或图表工作区上按下鼠标键时发生。
24、MouseOut: 当用户将鼠标指针移出电子表格上的单元格时发生。
25、MouseOver: 当用户将鼠标指针停留在指定电子表格上的单元格时发生。
26、MouseUp: 当用户在指针位于电子表格、数据透视表列表或图表工作区上释放鼠标键时发生。
27、MouseWheel: 当用户旋转具有滑轮的鼠标设备上的滑轮时发生。
28、ParametersOutReady:在一组参数从所连接的实现 IParametersOutProvider 接口的 Web 部件传递到实现 IParametersOutConsumer 接口的电子表格 Web 部件时,就会发生该 ParametersOutReady 事件。
29、RowReady 在将 ListObject 对象加载到电子表格组件中,选中 ListObject 对象中的单行,调用 XmlDataBinding 对象的 Refresh 方法时,不管该方法成功与否,都会调用该组件的 RowReady 事件过程。
30、SelectionChange:当用户进行一项新的选择时发生。用户不能取消该事件。
31、SelectionChanging 当用户在选择区域时移动鼠标指针时发生。当用户使用键盘选择时不发生该事件。用户不能取消该事件。
32、SheetActivate 当激活工作表时发生。
33、SheetCalculate 在计算工作表后发生。
34、SheetChange 当用户或外部链接更改了任何工作表中的单元格时发生。
35、SheetDeactivate 用户在更换工作表时,该事件在 SheetActivate 事件之前调用。
36、SheetFollowHyperlink 在单击超链接时发生。
37、StartEdit:当用户在指针位于单元格中进入编辑模式时发生。
38、ViewChange:在重绘电子表格时发生。
二、Names集合
说明:工作簿中所有 Name 对象的集合。每个 Name 对象可表示一个单元格区域、公式或常量值的定义名称。
**********************
属性
**********************
1、Application:返回表示电子表格控件的 Spreadsheet 对象。
2、Count:返回指定集合中的对象数目。Long 类型,只读。
3、Parent:返回指定对象的父对象。
**********************
方法
**********************
1、Add:定义新名称。返回一个 Name 对象。
2、Item:返回 Names 集合中的 Name 对象。
三、Worksheet对象
说明:表示工作簿中的单个工作表。
**************
属性
**************
1、Application:返回表示电子表格控件的 Spreadsheet 对象。
2、AutoFilter:返回指定工作表的 AutoFilter 对象。
3、AutoFilterMode: 如果当前显示了“自动筛选”下拉箭头,则返回 True。可以将该属性设置为 False 来隐藏箭头,但不能将其设置为 True。使用 AutoFilter 方法筛选列表并显示下拉箭头。Boolean 类型,可读写。
4、Cells:返回一个表示对象中单元格的 Range 对象。
5、Columns:返回代表指定区域中列的 Range 对象。只读。或者返回代表指定工作表上所有列的 Range 对象。
6、CommandText: 返回或设置指定对象的命令字符串。
7、ConnectionString:返回或设置两层数据库连接的 ADO 连接。String 类型,可读写。
8、DataMember:返回或设置数据成员名称(指定控件将从数据源请求获取的记录集名称)。DataMember 类型,可读写。
9、EnableAutoFilter:如果指定工作表可以筛选,则返回 True。如果 Protection 的 Enabled 属性设置为 False 则该属性无效。Boolean 类型,可读写。
10、FilterMode:如果“自动筛选”条件当前隐藏了工作表行,则返回 True。默认值为 False。Boolean 类型,只读。
11、Index:返回相似对象集合中指定对象的索引号码。
12、IsDataBound:返回或设置一个 Boolean 类型,确定指定工作表是否绑定到外部数据源。可读写。
13、ListObjects:返回 Worksheet 对象的 ListObjects 集合。只读。
14、Name:返回或设置指定对象的名称。
15、Names:返回表示指定工作表中定义的所有工作表级名称的 Names 集合。只读。
16、Next:返回表示下一个工作表的 Worksheet 对象。
17、Parent:返回指定对象的父对象。
18、Previous:返回表示上一个工作表的 Worksheet 对象。
19、ProtectContents:如果工作表内容处于保护状态,则返回 True。Boolean 类型,只读。
20、Protection:返回一个包含指定工作表保护信息的 Protection 对象。如果 Enabled 属性设置为 False,则忽略保护属性。
21、ProtectionMode:如果启用了用户界面专用保护,则返回 True。通常返回 True。Boolean类型,只读。
22、Range:返回一个 Range 对象,表示单元格或矩形单元格区域。
23、Rows:返回一个表示活动工作表中所有行的 Range 对象。
24、StandardHeight:以点数返回工作簿中所有行的标准(默认)高度。Double 类型,只读。
25、StandardWidth:返回工作表中所有列的标准(默认)宽度。
26、Type:返回 XlSheetType 对象类型,只读。
27、UsedRange:返回表示指定工作表上所用区域的 Range 对象。
28、Visible:设置可见性
*************
方法
*************
1、Activate:激活指定工作表。
第二、控件:安装offic后直接从c#工具箱,右键“选择项”,“COM组件”中选择,名称为“Microsoft.Office.Interop.Owc11.Spreadsheet 11.0”,即可在工具箱添加该控件。
第三、获取数据:
1)如果是DataTable的话,目前只发现了直接在后台代码写的方式(问题是太麻烦了,不想用)
2)希望是可以直接读取外部的一个excel文件,原样显示在AxSpreadsheet中
(1)如果是将excel转换为xml,再读取的话,转换为xml是个问题,excel2007文件直接另存为xml不成功,需要建立映射,所以放弃
(2)将excel转换为html,再读取的话,成功完成;
axSpreadsheet1.HTMLURL = ofd.FileName;
但是,格式无法显示出来(单元格颜色什么的可以不考虑,但是合并单元格一定要显示出来的)
(3)直接读取excel,首先用OleDb读取excel内容,再将该内容循环添加到AxSpreadsheet中,成功完成。
同样的问题,无法显示格式。