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 as Excel._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都是直接用向导生成的,且使用的是早期绑定技术(early binding)。但在许多需求中,我们需要制作一个能够兼容多个Office版本的Add-in,这时我们就不能使用早期绑定了,而应该使用后期绑定(late binding)。关于早期绑定和后期绑定的详细信息,请见http://word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm

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

对于Excel Add-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 as Excel._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都是直接用向导生成的,且使用的是早期绑定技术(early binding)。但在许多需求中,我们需要制作一个能够兼容多个Office版本的Add-in,这时我们就不能使用早期绑定了,而应该使用后期绑定(late binding)。关于早期绑定和后期绑定的详细信息,请见http://word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm

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

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

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

问题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向导中选择的"I would like my Add-in to load when the host application loads"是对应的。

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

http://blog.sina.com.cn/s/blog_455245fc01000azp.html

 

对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 as Excel._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都是直接用向导生成的,且使用的是早期绑定技术(early binding)。但在许多需求中,我们需要制作一个能够兼容多个Office版本的Add-in,这时我们就不能使用早期绑定了,而应该使用后期绑定(late binding)。关于早期绑定和后期绑定的详细信息,请见http://word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm

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

对于Excel Add-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 as Excel._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都是直接用向导生成的,且使用的是早期绑定技术(early binding)。但在许多需求中,我们需要制作一个能够兼容多个Office版本的Add-in,这时我们就不能使用早期绑定了,而应该使用后期绑定(late binding)。关于早期绑定和后期绑定的详细信息,请见http://word.mvps.org/FAQs/InterDev/EarlyvsLateBinding.htm

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

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

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

问题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向导中选择的"I would like my Add-in to load when the host application loads"是对应的。

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


  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值