Using system;using system.collections.generic;using system.linq;using system.web;using System.Web.UI;using System.web.ui.webcontrols;using system.reflection;using system.io;using system.data.sqlclient;using System.Data; Namespace webapplication1{ Public partial class printword:system.web.ui.page { &N Bsp protected void Page_Load (object sender, EventArgs e) { /Querydataset (); } //<summary> //export //</summary> //<param name= "Sender" >& lt;/param> //<param name= "E" ></param> protected VO ID Btnprint_click (object sender, EventArgs e) { Print ( ); } /<summary> ///export word ///build Word Solution &nbs P ///1. First introduce the template ///2. Determine if the row is the same as the query dataset, and if it is smaller than the dataset, it will be added to the number of rows / 3. Get the table and assign values for each cell ///4. Set the color change of the cell according to different conditions //</summary>& nbsp private void Print () { //first introduced word& nbsp Microsoft.Office.Interop.Word.Application app; Application Microsoft.Office.Interop.Word.Document Doc; //Create a document String templatefile = ""; Declare the template name to use String FileName = ""; The path name of the new file String Fname = ""; New file name app = Microsoft.Office.Interop.Word.AppLication ();//Create Instance app doc = new Microsoft.Office.Interop.Word.Document (); //creating an Instance document templatefile = Server.MapPath ("~/test/ Half month with forecast-Changan automobile Daily Express 2015010x.dot "); Server.MapPath ("~/test/caxsmb.dot");//Find template Fname = DateTime.Now.ToString (" Test the same document name try ") +". Doc ";//create a new file name yyyymmddhhmmss FileName = Server.MapPath (" ~/tes t/download/"+ Fname);//The path of the new file //decide to have the same document will be deleted & nbsp if (file.exists (FileName)) { &NBS P File.delete (FileName); } File.Copy (Templ Atefile, FileName);//copy template to new file //Set properties for new file &NBSP ; Object obj_filename = Filename; Object Visible = false; Object Rea DOnly = false; Object missing = system.reflection.missing.value; &NB Sp //Create new document doc = app. Documents.Open ( ref obj_filename, ref missing, ref ReadOnly, ref missing, & nbsp ref missing, ref missing, ref missing, ref missing, R EF missing, ref missing, ref missing, ref visible, ref missing, ref missing, ref missing, ref missing); //Add form &NBS P //dataset ds = GetDataSet ();//Get Program collection //int Dscount = Ds. Tables[0]. rows.count;//getting data from a database table &NBSp //int Doccount = doc. TABLES[1]. Rows.Count; Get data for tables in documents //if (Dscount > Doccount)//create rows when actual data is about tabular data //{ // //start adding lines &NBS P // microsoft.office.interop.word.table newtable = doc. tables[1]; // for (int row = 0; row < Dscount-doccount; row++) & nbsp // { // &NBS P;object BeforeRow = doc. TABLES[1]. rows[doccount-1]; // doc. TABLES[1]. Rows.Add (ref BeforeRow); Line add to table // } //} & nbsp Doc. Activate (); //Match form datasets &N Bsp Microsoft.Office.Interop.Word.Document odoc = GetDocument (FileName);//Get new documents DataSet ds = GetDataSet ();//Get Program collection //Start judging there are several tables/because there are three sheets in the template & nbsp for (int tablepos = 1; tablepos <= odoc. Tables.count; tablepos++) { //All in a single table &NB Sp if (Tablepos = = 1) { int dscount = ds. Tables[0]. rows.count;//get data from database tables int doccount = odoc. TABLES[1]. Rows.Count; Get data for tables in documents &NBSP; if (Dscount > Doccount)//When actual data is about tabular data, create line { //start adding lines & nbsp Microsoft.Office.Interop.Word.Table newtable = doc. tables[1]; for (int row = 0; row < ( Dscount-doccount) +1; row++) { &NB Sp Object beforerow = newtable.rows[doccount]; &N Bsp NEWTABLE.ROWS.ADD (ref beforerow); Line add to table } &nBsp } //After the form is completed, add data to Cell assignment for (int rcount = 0; Rcount < ds. Tables[0]. Rows.Count; rcount++) { for (int ccount = 0; ccount < ds. Tables[0]. Columns.count; ccount++) { //doc. TABLES[1]. Rows[rowpos]. Cells[columpos]. range.text StrText. = ds. Tables[0]. Rows[rcount][ccount]. ToString (); Doc. Tables[1]. ROWS[RCOUNT+2]. Cells[ccount + 1]. Range.Text = strtext;//starting from the second line if (StrText = = "R") &NBSP ; { Doc. TABLES[1]. ROWS[RCOUNT+2]. Cells[ccount + 1]. Range.Shading.BackgroundPatternColor = microsoft.office.interop.word.wdcolor.wdcolorlightblue; } &N Bsp } } & nbsp } } / /close process Object issave = TRue; Doc. Close (ref issave, ref missing, ref missing); app. Quit (ref issave, ref missing, ref missing); //close Word process String url = "~/test/download /"+ Fname;; Response.Redirect (URL); Sy Stem. Runtime.InteropServices.Marshal.ReleaseComObject (APP); //free memory space } //<summary> &NBSP ; ///query data set //</summary> //<returns></return s> public DataSet GetDataSet () { &NBSP ; string sConnectionString = "server=.; Uid=sa;pwd=123456;database=xiaoshoudb "; SqlConnection OBJCOnn = new SqlConnection (sConnectionString); objConn.Open (); & nbsp SqlDataAdapter da = new SqlDataAdapter ("select * from yuexiaoshou", objconn); &NBS P DataSet ds = new DataSet (); da. Fill (DS); objconn.close (); return DS;&NB Sp } //<summary> ///To get the properties under this file from the file address //</summary> //<param name= "Fileroad" ></param>& nbsp //<returns></returns> Public Microsoft.Office.Interop.Word.Document getdocument (String fileroad) { & nbsp Microsoft.Office.Interop.Word.Application app;   app = new Microsoft.Office.Interop.Word.Application (); OBJEC T ofilename = fileroad; //server.mappath (fileroad);//depending on the path of Word //("~/test/test read/write. docx"); //@ "f:\ database. docx"; Object oreadonly = false; &NB Sp Object omissing = system.reflection.missing.value; Microsoft.office.interop.word._application oword; Microsoft.Office.Interop.Word.Document odoc; oword = new Microsoft.Office.Interop.Word.Application (); oword.visible = false; odoc = OWord.Documents.Open (ref ofilename, ref omissing, ref oreadonly, ref omissing, R EF omissing, ref omissing, ref omissing, ref omissing, refomissing, ref omissing, ref omissing, ref omissing); return odoc; &N Bsp } }}
C # Export Word table code