文件管理 · 2024年1月27日

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

Ⅰ 急求C#窗体操作VSTO如何向word模板中的特定文本框添加图文信息

private void button1_Click(object sender, EventArgs e) { FileStream stream = null; SqlConnection conn = null; SqlCommand cmd = null; try { richTextBox1.SaveFile("temp.rtf"); stream = new FileStream("temp.rtf", FileMode.Open, FileAccess.Read); int size = Convert.ToInt32(stream.Length); Byte[] rtf = new Byte[size]; stream.Read(rtf, 0, size); conn = new SqlConnection("Data Source=d30 \\sqlexpress;Initial Catalog=Image;Integrated Security=True;"); conn.Open(); cmd = new SqlCommand("UPDATE pic SET picture=@Photo WHERE ID=1", conn); SqlParameter paramRTF = new SqlParameter("@Photo", SqlDbType.Image, rtf.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, rtf); cmd.Parameters.Add(paramRTF); int rowsUpdated = Convert.ToInt32(cmd.ExecuteNonQuery()); MessageBox.Show(String.Format("{0} rows updated", rowsUpdated)); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (stream != null) stream.Close(); if (cmd != null) cmd.Parameters.Clear(); if (conn != null) conn.Close(); } } private void button2_Click(object sender, EventArgs e) { richTextBox1.Clear(); SqlConnection cn = null; SqlCommand cmd = null; SqlDataReader reader = null; try { cn = new SqlConnection("Data Source=d30 \\sqlexpress;Initial Catalog=Image;Integrated Security=True;"); cn.Open(); cmd = new SqlCommand("SELECT picture FROM pic WHERE ID=1", cn); reader = cmd.ExecuteReader(); reader.Read(); if (reader.HasRows) { if (!reader.IsDBNull(0)) { Byte[] rtf = new Byte[Convert.ToInt32((reader.GetBytes(0, 0, null, 0, Int32.MaxValue)))]; long bytesReceived = reader.GetBytes(0, 0, rtf, 0, rtf.Length); ASCIIEncoding encoding = new ASCIIEncoding(); richTextBox1.Rtf = encoding.GetString(rtf, 0, Convert.ToInt32(bytesReceived)); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (reader != null) reader.Close(); if (cn != null) cn.Close(); } }

Ⅱ 如何通过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.

Ⅲ microsoft visual studio 2010 tools for office runtime是什么软件

microsoft visual studio 2010 tools for office runtime简称VSTO工具包,是VBA的替代,使得开发 Office应用程序更加简单,并且用VSTO来开发office应用程序可以使用Visual studio开发环境中的众多功能和CLR提供的内存管理,垃圾回收等功能。

(3)vsto操作word扩展阅读:

VSTO工具包使用强大的Visual Studio开发环境来创建定制程序,而不是使用Visual Basic for Application(VBA)和Office里的Visual Basic Editor(VBE)。无论是创建简单的数据录入应用程序还是复杂的企业解决方案,VSTO都使之变得容易。

VSTO工具包还提供了增强的Office对象,可以用他们来编程。可以找到VSTO版的Excel工作簿、工作表和范围(range),这些增强的功能在本地Excel对象模型里是找不到的还可以直接在Excel电子表格或者Word文档上添加.NET控件,然后把数据直接绑定到控件上。