用C#写Excel插件

对Excel插件的开发,目的是在工具栏中添加一个外部程序,点击这个外部程序,可以将当前的Sheet数据获取到并保存到另外一个sheet里面;主要注意两方面:

一、Excel插件外部程序建立向导,具体步骤是:

1.在 Microsoft Visual Studio .NET的文件菜单上,单击新建,然后单击项目
2.新建项目对话框中,展开项目类型下的其他项目,选择扩展性项目,然后选择共享的外接程序模板。
3.键入 MyCOMAddin作为该外接程序的名称,然后单击确定
4.“扩展性向导”出现后,请按照下列步骤操作:
a.在第 1 页,选择使用 Visual C#创建外接程序,然后单击下一步
b.在第 2页,选择下面的宿主应用程序,然后单击下一步
"Microsoft Word
"Microsoft PowerPoint
"Microsoft Outlook
"Microsoft Excel
"Microsoft Access
c.在第 3页上,输入该外接程序的名称和描述,然后单击下一步

注意:该外接程序的名称和描述出现在 Office 应用程序的 COM加载项对话框中。

d.在第 4页,选择所有可用的选项,然后单击下一步
e.单击完成
5.

项目菜单上,单击添加引用。单击组件列表中的System.Windows.Forms.DLL,单击选择,然后单击确定

引用要操作office对象,比如要操作excel,引用了Microsoft.Office.Interop.Excel,可以在微软的站点查找oxppia.exe文件下载,具体地址:http://download.microsoft.com/download/c/4/8/c4813cc0-a4d4-4bb4-b486-9cbd56f38235/oxppia.exe

Excel插件开发指导说明可以参考微软的网址:

http://support.microsoft.com/?kbid=302901

二、具体C#对Excel的操作:

1、如何获取到当前Excel、workbook、worksheet等:

               object o =System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

               Excel._Application app = o asExcel._Application;               Excel.Workbook workBook =app.ActiveWorkbook;//得到当前活动的excel文档
               Excel._Workbook wr = app.ActiveWorkbook;
               
               if (workBook == null)
               {
                   MessageBox.Show("No workbook is currently defined");
               }
               Excel.Worksheet xlsSheet;
               xlsSheet =(Excel.Worksheet)workBook.ActiveSheet;//得到当前Sheet
               m_iJ = xlsSheet.UsedRange.Rows.Count;//得到当前Sheet行数

2、各个属性值:

newWorksheet =(Excel.Worksheet)workBook.Worksheets.Add(Type.Missing,Type.Missing, Type.Missing,Type.Missing);//新增一个Sheet

newWorksheet.Name ="导入MQC";//设置Sheet的名称
newWorksheet.get_Range("A1", Missing.Value).Value2 ="Path";//设置某个单元格的值

newWorksheet.Cells.Clear();//清除单元格里面的值
newWorksheet.Cells.Font.Size = "10";//设置单元格字体大小


问题1 Visual Studio 2005开发的Office插件无法在Office中运行
这个问题可能是由于没有安装KB908002中提到的prerequisite造成的,可以去下面的地址下载该文档中提到的补丁:http://support.microsoft.com/kb/908002

安装完成后,我们可以在Add-in的安装项目的prerequisites中找到一个新的组件。
问题2 如何制作兼容多个版本Office的Office Addin
通常情况下,我们编写的Add-in都是直接用向导生成的,且使用的是早期绑定技术(earlybinding)。但在许多需求中,我们需要制作一个能够兼容多个Office版本的Add-in,这时我们就不能使用早期绑定了,而应该使用后期绑定(latebinding)。关于早期绑定和后期绑定的详细信息,请见http://word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm

问题3 通常Addin设置保存在注册表的什么位置
以Office 2003 WordAdd-in为例,通常会保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins中。
假设我们有一个名字为MyAddin1的Addin,那么它就会保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\MyAddin1.Connect中。

对于ExcelAdd-in来说,也是类似的,通常保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins中,依此类推。

对Excel插件的开发,目的是在工具栏中添加一个外部程序,点击这个外部程序,可以将当前的Sheet数据获取到并保存到另外一个sheet里面;主要注意两方面:

一、Excel插件外部程序建立向导,具体步骤是:

1.在 Microsoft Visual Studio .NET的文件菜单上,单击新建,然后单击项目
2.新建项目对话框中,展开项目类型下的其他项目,选择扩展性项目,然后选择共享的外接程序模板。
3.键入 MyCOMAddin作为该外接程序的名称,然后单击确定
4.“扩展性向导”出现后,请按照下列步骤操作:
a.在第 1 页,选择使用 Visual C#创建外接程序,然后单击下一步
b.在第 2页,选择下面的宿主应用程序,然后单击下一步
"Microsoft Word
"Microsoft PowerPoint
"Microsoft Outlook
"Microsoft Excel
"Microsoft Access
c.在第 3页上,输入该外接程序的名称和描述,然后单击下一步

注意:该外接程序的名称和描述出现在 Office 应用程序的 COM加载项对话框中。

d.在第 4页,选择所有可用的选项,然后单击下一步
e.单击完成
5.

项目菜单上,单击添加引用。单击组件列表中的System.Windows.Forms.DLL,单击选择,然后单击确定

引用要操作office对象,比如要操作excel,引用了Microsoft.Office.Interop.Excel,可以在微软的站点查找oxppia.exe文件下载,具体地址:http://download.microsoft.com/download/c/4/8/c4813cc0-a4d4-4bb4-b486-9cbd56f38235/oxppia.exe

Excel插件开发指导说明可以参考微软的网址:

http://support.microsoft.com/?kbid=302901

二、具体C#对Excel的操作:

1、如何获取到当前Excel、workbook、worksheet等:

               object o =System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

               Excel._Application app = o asExcel._Application;               Excel.Workbook workBook =app.ActiveWorkbook;//得到当前活动的excel文档
               Excel._Workbook wr = app.ActiveWorkbook;
               
               if (workBook == null)
               {
                   MessageBox.Show("No workbook is currently defined");
               }
               Excel.Worksheet xlsSheet;
               xlsSheet =(Excel.Worksheet)workBook.ActiveSheet;//得到当前Sheet
               m_iJ = xlsSheet.UsedRange.Rows.Count;//得到当前Sheet行数

2、各个属性值:

newWorksheet =(Excel.Worksheet)workBook.Worksheets.Add(Type.Missing,Type.Missing, Type.Missing,Type.Missing);//新增一个Sheet

newWorksheet.Name ="导入MQC";//设置Sheet的名称
newWorksheet.get_Range("A1", Missing.Value).Value2 ="Path";//设置某个单元格的值

newWorksheet.Cells.Clear();//清除单元格里面的值
newWorksheet.Cells.Font.Size = "10";//设置单元格字体大小


问题1 Visual Studio 2005开发的Office插件无法在Office中运行
这个问题可能是由于没有安装KB908002中提到的prerequisite造成的,可以去下面的地址下载该文档中提到的补丁:http://support.microsoft.com/kb/908002

安装完成后,我们可以在Add-in的安装项目的prerequisites中找到一个新的组件。
问题2 如何制作兼容多个版本Office的Office Addin
通常情况下,我们编写的Add-in都是直接用向导生成的,且使用的是早期绑定技术(earlybinding)。但在许多需求中,我们需要制作一个能够兼容多个Office版本的Add-in,这时我们就不能使用早期绑定了,而应该使用后期绑定(latebinding)。关于早期绑定和后期绑定的详细信息,请见http://word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm

问题3 通常Addin设置保存在注册表的什么位置
以Office 2003 WordAdd-in为例,通常会保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins中。
假设我们有一个名字为MyAddin1的Addin,那么它就会保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\MyAddin1.Connect中。

对于ExcelAdd-in来说,也是类似的,通常保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins中,依此类推。

在每个Add-in的设置属性中有一个重要的标志LoadBehavior,这个属性是保存在XXXX.Connect中的,类型为DWORD,这个值直接决定了Addin的启动模式,默认值为3表示Office应用程序一启动就运行,这个设置与我们在Addin向导中选择的"Iwould like my Add-in to load when the host applicationloads"是对应的。

问题4当确定你的Add-in应该可以正确加载,但在启动时没有加载,这是怎么回事
如果一个Add-in因为某些原因在启动时加载失败,Office应用程序会自动把LoadBehavior改成8,这表示仅在需要加载时才加载该Add-in,而不是在Office启动时。所以这时可以到与该Add-in对应的注册表项中检查一下LoadBehavior值是否正确,如果为8,一定把它改成3。


在每个Add-in的设置属性中有一个重要的标志LoadBehavior,这个属性是保存在XXXX.Connect中的,类型为DWORD,这个值直接决定了Addin的启动模式,默认值为3表示Office应用程序一启动就运行,这个设置与我们在Addin向导中选择的"Iwould like my Add-in to load when the host applicationloads"是对应的。

问题4当确定你的Add-in应该可以正确加载,但在启动时没有加载,这是怎么回事
如果一个Add-in因为某些原因在启动时加载失败,Office应用程序会自动把LoadBehavior改成8,这表示仅在需要加载时才加载该Add-in,而不是在Office启动时。所以这时可以到与该Add-in对应的注册表项中检查一下LoadBehavior值是否正确,如果为8,一定把它改成3。
1、Office2000 下内部COM插件的编程实现.................................................................................2 1.1、版权声明..........................................................................................................................2 1.2、内容详情..........................................................................................................................2 2、用VC6.0 编Word插件..........................................................................................................11 2.1、版权声明........................................................................................................................11 2.2、内容详情........................................................................................................................11 3、探索 Word 2007 开发.............................................................................................................19 3.1、版权声明........................................................................................................................19 3.2、内容详情........................................................................................................................19 3.2.1 我的博客...............................................................................................................19 3.2.2 扩展 Ribbon.........................................................................................................28 3.2.3 管理侧栏...............................................................................................................43 3.2.4 上传图片...............................................................................................................49 3.2.5 部署插件...............................................................................................................56 4、用VC6.0 编Word插件(Office2007 篇).................................................................................66 4.1、版权声明........................................................................................................................66 4.2、内容详情........................................................................................................................66 5、Microsoft Word 语法高亮插件(v1.2) ................................................................................70 5.1、版权声明........................................................................................................................70 5.2、内容详情........................................................................................................................70 6、VSTO学习笔记........................................................................................................................75 6.1、版权声明........................................................................................................................75 6.2、内容详情........................................................................................................................75 6.2.1 VSTO概述.............................................................................................................75 6.2.2 Excel对象模型.......................................................................................................89 6.2.3 开发Office 2010 64 位COM加载项...................................................................101 6.2.4 从SharePoint 2010 中下载文件.........................................................................117 6.2.5 批量编辑Excel 2010 x64....................................................................................123 6.2.6 在 Excel 2010 中使用RDLC报表.....................................................................131 7、Excel 二次开发系列..............................................................................................................137 7.1、版权声明......................................................................................................................137 7.2、内容详情......................................................................................................................137 7.2.1 Excel 编成模型...................................................................................................137 7.2.2 Excel 常用操作(创建、打开、读取、入)...............................................139 7.2.3 创建Excel二次开发环境....................................................................................142 7.2.4 操作一个已经存在Excel....................................................................................143 7.2.5 插件开发系列操作.............................................................................................145 7.2.6 引用Excel模板....................................................................................................172 7.2.7 报表服务基础.....................................................................................................174 7.2.8 报表服务实例.....................................................................................................178
### 回答1: WinForms是Microsoft .NET Framework中的一种应用程序开发框架,它提供了一种创建Windows应用程序用户界面的简单方法。 WinForms使用基于事件的模型来处理用户交互,并且使用面向对象的方法来构建应用程序。它提供了许多预定义的控件,如按钮、文本框、列表框等,开发者可以通过在设计视图中拖拽和放置这些控件来创建用户界面。同时,开发者也可以通过编代码来控制控件的行为和属性。 WinForms具有很强的可定制性,开发者可以通过设置控件的属性来改变其外观和行为,还可以通过继承现有的控件来创建自定义控件。除了提供基本的Windows控件,WinForms还支持绘制自定义的图形和控件,以满足特定的应用需求。 WinForms提供了一套简单易用的事件处理机制,开发者可以为控件注册事件处理方法,当事件发生时,这些方法会被自动调用。开发者还可以添加各种事件处理器来响应用户的操作,如按钮的点击事件、鼠标移动事件等。 WinForms还提供了数据绑定功能,使开发者能够将控件与数据源相绑定,实时反映数据的变化。这样,开发者就可以简单地操作数据,并将其显示在界面上,而无需手动处理数据的更新和刷新。 总而言之,WinForms是一个功能强大且易于使用的框架,它使开发者能够快速创建Windows应用程序,并提供了丰富的功能和可定制性。无论是初学者还是经验丰富的开发者,都可以轻松上手并发挥其优势。 ### 回答2: WinForm C# 是一种开发桌面应用程序的技术,它是使用C#语言在Windows操作系统上开发的。使用WinForm C#可以快速、简单地创建具有丰富用户界面和功能的应用程序。 WinForm C#提供了一系列的控件和功能,可以方便地进行用户界面的设计和开发。通过拖拽控件,设定属性,以及编事件处理方法,我们可以轻松地实现按钮、文本框、列表框、菜单等常见的界面元素。同时,WinForm C#还提供了丰富的布局方式,可以让用户界面更加美观、易于操作。 除了用户界面,WinForm C#还提供了很多有用的功能。例如,我们可以利用WinForm C#来访问数据库,进行数据的增删改查操作。我们也可以使用WinForm C#来操作文件系统,创建、读取、入文件等。此外,WinForm C#还支持网络编程,可以实现与远程服务器的通信。 使用WinForm C#开发应用程序具有很多优点。首先,它基于.NET框架,拥有强大的功能和性能。其次,WinForm C#具有良好的可视化开发环境,使开发人员可以更快速地进行开发和调试。此外,WinForm C#还提供了丰富的文档和示例代码,方便开发人员学习和使用。 总之,WinForm C#是一种强大的开发技术,可以帮助我们快速开发出功能强大、界面友好的桌面应用程序。无论是初学者还是经验丰富的开发人员都可以借助WinForm C#来开发自己的应用程序。 ### 回答3: WinForms是一种用于创建Windows桌面应用程序的用户界面框架,它是基于.NET平台的一部分。通过使用C#编程语言,开发人员可以使用WinForms快速构建交互式和功能丰富的Windows应用程序。 WinForms提供了一组丰富的控件,如文本框、按钮、标签等,这些控件可以自由布局在窗体上,以构建用户友好的界面。此外,WinForms还支持数据绑定和事件处理,使开发人员能够轻松地控制用户界面和处理用户操作。 WinForms还具有良好的可定制性和扩展性。开发人员可以根据自己的需要自定义控件的外观和行为,以满足特定的应用程序需求。此外,通过使用第三方控件库,开发人员可以进一步扩展WinForms的功能。 在使用WinForms进行C#开发时,开发人员首先需要创建一个窗体类,窗体类是应用程序的主要界面。然后,通过在窗体类中添加控件并编事件处理程序,可以实现用户界面和交互逻辑。 WinForms使用面向对象的编程模式,开发人员可以通过继承窗体类和控件类来创建自定义控件,并重各种方法以实现特定的行为。 总之,WinForms是一个功能强大且易于使用的框架,它与C#编程语言紧密结合,可以帮助开发人员快速构建Windows桌面应用程序。无论是个人开发者还是企业开发人员,都可以通过学习和使用WinForms来实现他们的应用程序开发需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值