如何通过VS2010用C#实现对Excel等Office的操作

如题所述

    之前都是用VBA来开发Office解决方案的,后来微软开发出了VSTO这个工具包来创建自定义的Office应用程序,使得开发Office应用程序更加简单,并且用VSTO来开发office应用程序可以使用Visual studio开发环境中的众多功能和CLR提供的内存管理,垃圾回收等功能。

    Office应用程序如Word,Excel和Outlook都是用非托管代码来写的, 而我们创建的VSTO工程使用的是托管代码,这时候就需要使用互操作程序集来与Office应用程序里的非托管COM对象交互,然后主互操作程序集(PIA)指的是官方发布的互操作程序集,如果电脑中安装了PIA,当你添加对类库的引用时,那么Visual Studio会自动加载PIA,微软为Office应用程序提供了PIA,如EXcel PIA就是Microsof.Office.Interop.Excel.dll,其他应用程序也类似。当安装了Office产品后,PIA会自动安装在电脑的GAC目录里,每当创建一个VSTO解决方案, Visual Studio会自动为该解决方案加载合适的Office PIA引用和其他程序集

    宿主项是表示Office对象模型入口点的类。应用程序外接程序使用Microsoft.Office.Tools.AddIn类为宿主项,此宿主项提供对宿主应用程序和成员的对象模型的访问,可以通过宿主项添加数据绑定的能力和提供额外的事件来扩展本地Office文档。而创建一个Excel解决方案会创建4个Excel宿主项:Workbook,Sheet1,Sheet2和Sheet3.

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-10-14
你这个问题太大了,如果清楚地回答你可以写出一本几百页的书来了,看看VSTO相关书籍,里面讲的很全面。

如何通过VS2010用C#实现对Excel等Office的操作
Office应用程序如Word,Excel和Outlook都是用非托管代码来写的, 而我们创建的VSTO工程使用的是托管代码,这时候就需要使用互操作程序集来与Office应用程序里的非托管COM对象交互,然后主互操作程序集(PIA)指的是官方发布的互操作程序集,如果电脑中安装了PIA,当你添加对类库的引用时,那么Visual Studio会...

利用vs2010、C#做一个EXCEL与dataGridView的数据相互导入导出!!_百度知...
public DataTable ReadDataByExcel(string fileFullPath) {\/\/ strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileFullPath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1;'";\/\/只适合xls后缀 string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Sourc...

怎么在vs2010中使用C++读excel表格中的内容,最好使用vs自带的库函数
读取Excel首先你在引用中得引用Microsoft office Excel 20** 对应的dll文件,才能读取到Excel的数据 在类里面引用:System.Data.OleDb;static public DataSet ExcelToDataSet(string filename){ DataSet ds;string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=Excel 8.0;" +...

c# vs2010 将excel内容写入list
一样的,你循环datatable的rows ,通过datatable.Rows[行索引][列索引].toString() 来获取某一行某一列的值。比如这里有个类 model ,里面有 id, name两个属性 那就 在循环里面 model m=new model(); m.id=dt.Rows[i][对应的列].toString();m.name=dt.Rows[i][对应的列].toString(...

用VS2010怎么样能画出图表或者说如何能用Excel表格的画图功能 VB...
Public Class Form3 Protected Sub iniChart() Dim dt As New DataTable '表增加月份、收入、支出三列 dt.Columns.Add("月份") dt.Columns.Add("收入") dt.Columns.Add("支出") Dim dr As DataRow For i As Integer = 1 To 12 '新增行 dr = dt.NewRow...

想要用VS2010做一个上位机excel导出数据,但是却发现没有excel类库,怎么...
如果是C#程序,可使用下面方法 添加引用:Microsoft.Office.Interop.Excel 可参考这个位置 C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Visual Studio Tools for Office\\PIA\\Office11\\Microsoft.Office.Interop.Excel.dll 在CS文件中,using Microsoft.Office.Interop.Excel; 即可 如果是其他...

c#.net vs2010 添加office引用 总出错
1、stdole.dll这个dll文件不在项目中,所以编译的时候报错。解决方法,将你的stdole.dll这个文件先复制到项目中,然后再添加引用。编译应该就不会报错了。2、项目的目标框架不是.net 4.0。解决方案:选中项目右键→属性→目标框架选择.NET Framework 4.0。你试试,如果你的dll是没有问题的话,应该是...

需要统计多个excel文件中的数据,想使用Vb.net(vs2010)来变成实现...
1、数据透视表是用于在excel中不通过编程就实现汇总数据的目的,既然你都想编程了,数据透视表也就失去意义。2、ACCESS更是无稽之谈,多此一举。3、Excel文件不管多少,最重要的是每个文件要有统一的格式,这样就有了编程的前提。实现方法是:1、让程序能找到所有excel文件 2、用子过程读取每一个文件...

用VS2010软件做一个显示界面,需要调用数据库和excel表
html 是前台网页不可能实现连接数据库读取,之前做过winform就好 ,一样的 通过 C# 去读取 然后 传给 html前台网页展示 就好了

用VS2010怎么样能画出图表或者说如何能用Excel表格的画图功能 VB...
Public Class Form3 Protected Sub iniChart() Dim dt As New DataTable '表增加月份、收入、支出三列 dt.Columns.Add("月份") dt.Columns.Add("收入") dt.Columns.Add("支出") Dim dr As DataRow For i As Integer = 1 To 12 '新增行 dr = dt.NewRow...

相似回答