Ⅰ 急求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控制項,然後把數據直接綁定到控制項上。