C#操作word文档(二)
1.C#操作Word完全功略
導(dǎo)入COM庫:Microsoft word 11.0 Object Library.
引用里面就增加了:
創(chuàng)建新Word
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
????????????????? ref oMissing, ref oMissing);
打開文檔:
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? object fileName = @"E:\CCCXCXX\TestDoc.doc";
????????????? oDoc = oWord.Documents.Open(ref fileName,
????????????? ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
????????????? ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
????????????? ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
導(dǎo)入模板
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? object fileName = @"E:\XXXCCX\Test.doc";
????????????? oDoc = oWord.Documents.Add(ref fileName, ref oMissing,
????????????????????????????? ref oMissing, ref oMissing);
.添加新表
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
????????????????? ref oMissing, ref oMissing);
????????????? object start = 0;
????????????? object end = 0;
????????????? Word.Range tableLocation = oDoc.Range(ref start, ref end);
????????????? oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
.表插入行
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
????????????????? ref oMissing, ref oMissing);
????????????? object start = 0;
????????????? object end = 0;
????????????? Word.Range tableLocation = oDoc.Range(ref start, ref end);
????????????? oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
????????????? Word.Table newTable = oDoc.Tables[1];
????????????? object beforeRow = newTable.Rows[1];
????????????? newTable.Rows.Add(ref beforeRow);
.單元格合并
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
????????????????? ref oMissing, ref oMissing);
????????????? object start = 0;
????????????? object end = 0;
????????????? Word.Range tableLocation = oDoc.Range(ref start, ref end);
????????????? oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
????????????? Word.Table newTable = oDoc.Tables[1];
????????????? object beforeRow = newTable.Rows[1];
????????????? newTable.Rows.Add(ref beforeRow);
????????????? Word.Cell cell = newTable.Cell(1, 1);
????????????? cell.Merge(newTable.Cell(1, 2));
.單元格分離
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
????????????????? ref oMissing, ref oMissing);
????????????? object start = 0;
????????????? object end = 0;
????????????? Word.Range tableLocation = oDoc.Range(ref start, ref end);
????????????? oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);
????????????? Word.Table newTable = oDoc.Tables[1];
????????????? object beforeRow = newTable.Rows[1];
????????????? newTable.Rows.Add(ref beforeRow);
????????????? Word.Cell cell = newTable.Cell(1, 1);
????????????? cell.Merge(newTable.Cell(1, 2));
????????????? object Rownum = 2;
????????????? object Columnnum = 2;
????????????? cell.Split(ref Rownum, ref??? Columnnum);
通過段落控制插入
????????????? object oMissing = System.Reflection.Missing.Value;
????????????? object oEndOfDoc = "http://www.cnblogs.com/carekee/admin/file://endofdoc/"; /**//* \endofdoc is a predefined bookmark */
????????????? //Start Word and create a new document.
????????????? Word._Application oWord;
????????????? Word._Document oDoc;
????????????? oWord = new Word.Application();
????????????? oWord.Visible = true;
????????????? oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
????????????????? ref oMissing, ref oMissing);
????????????? //Insert a paragraph at the beginning of the document.
????????????? Word.Paragraph oPara1;
????????????? oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
????????????? oPara1.Range.Text = "Heading 1";
????????????? oPara1.Range.Font.Bold = 1;
????????????? oPara1.Format.SpaceAfter = 24;????? //24 pt spacing after paragraph.
????????????? oPara1.Range.InsertParagraphAfter();
2.ASP.NET(C#)將數(shù)據(jù)導(dǎo)出到Word或Excel
命名空間:
using System.IO;
using System.Text;
將DataGrid的數(shù)據(jù)導(dǎo)出到Excel
???????? string excelname="excel文件名";
???????? HttpContext.Current.Response.Charset = "GB2312";
???????? HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
???????? HttpContext.Current.Response.ContentType = "application/ms-excel";
???????? HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment;filename=" + excelname + ".xls");
???????? dr1.Page.EnableViewState = false;
???????? StringWriter sw = new StringWriter();
???????? HtmlTextWriter tw = new HtmlTextWriter(sw);
???????? dr1.RenderControl(tw);
???????? HttpContext.Current.Response.Write(sw.ToString());
???????? HttpContext.Current.Response.End();
?
將DataGrid的數(shù)據(jù)導(dǎo)出到Word
???????? string excelname="word文件名";
???????? HttpContext.Current.Response.Charset = "GB2312";
???????? HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
???????? HttpContext.Current.Response.ContentType = "application/ms-winword";
???????? HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment;filename=" + excelname + ".doc");
???????? dr1.Page.EnableViewState = false;
???????? StringWriter sw = new StringWriter();
???????? HtmlTextWriter tw = new HtmlTextWriter(sw);
???????? dr1.RenderControl(tw);
???????? HttpContext.Current.Response.Write(sw.ToString());
???????? HttpContext.Current.Response.End();
3.c# 如何將獲得的數(shù)據(jù).導(dǎo)入(寫入) word里
導(dǎo)入com庫:microsoft word 11.0 object library.
將數(shù)據(jù)綁定到datagrid然后從datagrid中將數(shù)據(jù)導(dǎo)出代碼如下:
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";???
Response.AppendHeader("Content-Disposition","attachment;filename=fileOut(" + System.DateTime.Now.Year+System.DateTime.Now.Month + System.DateTime.Now.Day+").doc");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//設(shè)置輸出流為簡體中文
Response.ContentType = "application/ms-word";//設(shè)置輸出文件類型為word文件。
this.EnableViewState = false;???
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
DataGrid1.Visible = true;
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
DataGrid1.Visible = false;
Response.End();
4.c#.net中通過關(guān)鍵字檢索指定文件夾中的word文檔
private static object nullobj = System.Reflection.Missing.Value;
// <summary>
??????? /// search in a DOC file(查詢DOC文件的內(nèi)容)
??????? /// </summary>
??????? /// <param name="fileName"></param>
??????? /// <param name="searchForText">要搜索的文本</param>
??????? /// <param name="CaseSensitive">是否區(qū)分大小寫</param>
??????? /// <returns></returns>
??????? public static bool SearchInDoc(string fileName,string searchForText,bool CaseSensitive)
{
??????????? bool Result = (searchForText.Length == 0);
??????????? object filename = fileName;??? //要打開的文檔路徑
??????????? object MissingValue=System.Reflection.Missing.Value;//Type.Missing;
??????????? object readOnly = false;
???????????? Microsoft.Office.Interop.Word.Application wp = null;
???????????? Microsoft.Office.Interop.Word.Document wd = null;
???????????
??????????? try
??????????? {
???????????????? wp = new Microsoft.Office.Interop.Word.ApplicationClass();
???????????????? wd = wp.Documents.Open(ref filename,ref MissingValue,
??????????????????? ref readOnly,ref MissingValue,
??????????????????? ref MissingValue,ref MissingValue,
??????????????????? ref MissingValue,ref MissingValue,
??????????????????? ref MissingValue,ref MissingValue,
??????????????????? ref MissingValue,ref MissingValue,
??????????????????? ref MissingValue,ref MissingValue,
??????????????????? ref MissingValue,ref MissingValue);
???????????
??????????????? int i=0,iCount=0;
???????????????? Microsoft.Office.Interop.Word.Find wfnd;
???????????
??????????????? if (wd.Paragraphs != null && wd.Paragraphs.Count>0)
??????????????? {
???????????????????? iCount = wd.Paragraphs.Count;
??????????????????? for(i=1;i<=iCount;i++)
??????????????????? {
???????????????????????? wfnd=wd.Paragraphs[i].Range.Find;
???????????????????????? wfnd.ClearFormatting();
???????????????????????? wfnd.MatchCase = CaseSensitive;
???????????????????????? wfnd.Text = searchForText;
???????????????????????
????????????????????????? if (wfnd.Execute(ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue,ref MissingValue,
??????????????????????????? ref MissingValue))
??????????????????????? {
???????????????????????????? Result = true;
??????????????????????????? break;
???????????????????????? }
???????????????????? }
???????????????? }
???????????? }
??????????? catch(Exception ex)
??????????? {
??????????????? throw new Exception(ex.Message);
???????????? }
??????????? finally
??????????? {
??????????????? if(wd != null)
??????????????? {
???????????????????? wd.Close(ref nullobj,ref nullobj,ref nullobj);
???????????????????? System.Runtime.InteropServices.Marshal.ReleaseComObject(wd);?
???????????????????? wd = null;
???????????????? }???????????????
??????????????? if(wp != null)
??????????????? {???
???????????????????? wp.Quit(ref nullobj,ref nullobj,ref nullobj);
???????????????????? System.Runtime.InteropServices.Marshal.ReleaseComObject(wp);
???????????????????? wp = null;
???????????????? }
???????????????? GC.Collect();
???????????? }
??????????? return Result;
???????? }
5.C#也能動(dòng)態(tài)生成Word文檔并填充數(shù)據(jù)(1)
要使用C#操作word,首先要添加引用:
??????? 1、添加引用->COM->Microsoft Word 11.0 Object Library
??????? 2、在.cs文件中添加using Word;
下面的例子中包括C#對Word文檔的創(chuàng)建、插入表格、設(shè)置樣式等操作:
(例子中代碼有些涉及數(shù)據(jù)信息部分被省略,重要是介紹一些C#操作word文檔的方法)
??????? public string CreateWordFile(string CheckedInfo)
??????? ...{
??????????? string message = "";
??????????? try
??????????? ...{
???????????????? Object Nothing = System.Reflection.Missing.Value;
???????????????? Directory.CreateDirectory("C:/CNSI");? //創(chuàng)建文件所在目錄
??????????????? string name = "CNSI_" + DateTime.Now.ToShortString()+".doc";
??????????????? object filename = "C://CNSI//" + name;? //文件保存路徑
??????????????? //創(chuàng)建Word文檔
???????????????? Word.Application WordApp = new Word.ApplicationClass();
???????????????? Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
??????????????? //添加頁眉
???????????????? WordApp.ActiveWindow.View.Type = WdViewType.wdOutlineView;
???????????????? WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekPrimaryHeader;
???????????????? WordApp.ActiveWindow.ActivePane.Selection.InsertAfter("[頁眉內(nèi)容]");
???????????????? WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;//設(shè)置右對齊
???????????????? WordApp.ActiveWindow.View.SeekView = WdSeekView.wdSeekMainDocument;//跳出頁眉設(shè)置
???????????????? WordApp.Selection.ParagraphFormat.LineSpacing = 15f;//設(shè)置文檔的行間距
??????????????? //移動(dòng)焦點(diǎn)并換行
??????????????? object count = 14;
??????????????? object WdLine = Word.WdUnits.wdLine;//換一行;
????????????????? WordApp.Selection.MoveDown(ref WdLine, ref count, ref Nothing);//移動(dòng)焦點(diǎn)
????????????????? WordApp.Selection.TypeParagraph();//插入段落
6.C#也能動(dòng)態(tài)生成Word文檔并填充數(shù)據(jù)(2)
//文檔中創(chuàng)建表格
????????????????? Word.Table newTable = WordDoc.Tables.Add(WordApp.Selection.Range, 12, 3, ref Nothing, ref Nothing);
???????????????? //設(shè)置表格樣式
????????????????? newTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleThickThinLargeGap;
????????????????? newTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;
????????????????? newTable.Columns[1].Width = 100f;
????????????????? newTable.Columns[2].Width = 220f;
????????????????? newTable.Columns[3].Width = 105f;
???????????????? //填充表格內(nèi)容
????????????????? newTable.Cell(1, 1).Range.Text = "產(chǎn)品詳細(xì)信息表";
????????????????? newTable.Cell(1, 1).Range.Bold = 2;//設(shè)置單元格中字體為粗體
???????????????? //合并單元格
????????????????? newTable.Cell(1, 1).Merge(newTable.Cell(1, 3));
????????????????? WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;//垂直居中
????????????????? WordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;//水平居中
???????????????????????
???????????????? //填充表格內(nèi)容
????????????????? newTable.Cell(2, 1).Range.Text = "產(chǎn)品基本信息";
????????????????? newTable.Cell(2, 1).Range.Font.Color = Word.WdColor.wdColorDarkBlue;//設(shè)置單元格內(nèi)字體顏色
???????????????? //合并單元格
????????????????? newTable.Cell(2, 1).Merge(newTable.Cell(2, 3));
????????????????? WordApp.Selection.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
????????????????? //填充表格內(nèi)容
?????????????????? newTable.Cell(3, 1).Range.Text = "品牌名稱:";
?????????????????? newTable.Cell(3, 2).Range.Text = BrandName;
????????????????? //縱向合并單元格
?????????????????? newTable.Cell(3, 3).Select();//選中一行
????????????????? object moveUnit = Word.WdUnits.wdLine;
????????????????? object moveCount = 5;
????????????????? object moveExtend = Word.WdMovementType.wdExtend;
??????????????????? WordApp.Selection.MoveDown(ref moveUnit, ref moveCount, ref moveExtend);
??????????????????? WordApp.Selection.Cells.Merge();
?????????????????? //插入圖片
?????????????????? string FileName = Picture;//圖片所在路徑
?????????????????? object LinkToFile = false;
?????????????????? object SaveWithDocument = true;
?????????????????? object Anchor = WordDoc.Application.Selection.Range;
??????????????????? WordDoc.Application.ActiveDocument.InlineShapes.AddPicture(FileName, ref LinkToFile, ref SaveWithDocument, ref Anchor);
???????????????????? WordDoc.Application.ActiveDocument.InlineShapes[1].Width = 100f;//圖片寬度
???????????????????? WordDoc.Application.ActiveDocument.InlineShapes[1].Height = 100f;//圖片高度
??????????????????? //將圖片設(shè)置為四周環(huán)繞型
???????????????????? Word.Shape s = WordDoc.Application.ActiveDocument.InlineShapes[1].ConvertToShape();
???????????????????? s.WrapFormat.Type = Word.WdWrapType.wdWrapSquare;
???????????????????????
???????????????????? newTable.Cell(12, 1).Range.Text = "產(chǎn)品特殊屬性";
???????????????????? newTable.Cell(12, 1).Merge(newTable.Cell(12, 3));
???????????????????? //在表格中增加行
????????????????????? WordDoc.Content.Tables[1].Rows.Add(ref Nothing);
?????????????????????
????????????????????? WordDoc.Paragraphs.Last.Range.Text = "文檔創(chuàng)建時(shí)間:" + DateTime.Now.ToString();//“落款”
????????????????????? WordDoc.Paragraphs.Last.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
??????????????????? //文件保存
???????????????????? WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
???????????????????? WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
???????????????????? WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
???????????????????? message=name+"文檔生成成功,以保存到C:CNSI下";
???????????? }
??????????? catch
??????????? {
???????????????? message = "文件導(dǎo)出異常!";
???????????? }
??????????? return message;
???????? }
7.C#操作Word、Excel
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Reflection;
using Word;
using Microsoft;
namespace ZHRAIMS.Logic
{
???? public class FillManager
???? {
???????? private Dictionary<string, string> 封面 = null;
???????? private Dictionary<string, string> 背脊 = null;
???????? private object oMissing = System.Reflection.Missing.Value;
???????? private object 封面模板 = System.Windows.Forms.Application.StartupPath + @"\Template\封面模板.doc";
???????? private string 目錄模板 = System.Windows.Forms.Application.StartupPath + @"\Template\目錄模板.xls";
???????? private object 脊背模板 = System.Windows.Forms.Application.StartupPath + @"\Template\脊背模板.doc";
???????? private object 封面R = System.Windows.Forms.Application.StartupPath + @"\Temp\";
???????? private string 目錄R = System.Windows.Forms.Application.StartupPath + @"\Temp\";
???????? private object 脊背R = System.Windows.Forms.Application.StartupPath + @"\Temp\";
???????? public void Fill封面模板(DataTable result)
???????? {
???????????? try
???????????? {
???????????????? this.封面R += DateTime.Now.ToString("yyyyMMddHHmmssms") + ".doc";
???????????????? this.封面 = new Dictionary<string, string>();
???????????????? this.封面.Add("dh", result.Rows[0]["檔號(hào)"].ToString().Length > 0 ? result.Rows[0]["檔號(hào)"].ToString() : "");
???????????????? this.封面.Add("zrdw", result.Rows[0]["編制單位"].ToString().Length > 0 ? result.Rows[0]["編制單位"].ToString() : "");
???????????????? this.封面.Add("jdrq", DateTime.Parse(result.Rows[0]["建檔日期"].ToString()).ToShortDateString());
???????????????? this.封面.Add("bgqx", result.Rows[0]["保管期限"].ToString().Length > 0 ? result.Rows[0]["保管期限"].ToString() : "");
???????????????? this.封面.Add("mj", result.Rows[0]["秘密等級(jí)"].ToString());
???????????????? string ajtm1 = null;
???????????????? string ajtm2 = null;
???????????????? if (result.Rows[0]["案卷題名"].ToString().Length > 20)
???????????????? {
???????????????????? ajtm1 = result.Rows[0]["案卷題名"].ToString().Substring(0, 20);
???????????????????? this.封面.Add("ajtm1", ajtm1);
???????????????????? ajtm2 = result.Rows[0]["案卷題名"].ToString().Substring(20);
???????????????????? this.封面.Add("ajtm2", ajtm2);
???????????????? }
???????????????? else
???????????????? {
???????????????????? ajtm1 = result.Rows[0]["案卷題名"].ToString().Length > 0 ? result.Rows[0]["案卷題名"].ToString() : "";
???????????????????? this.封面.Add("ajtm1", ajtm1);
???????????????? }
???????????????? Word.ApplicationClass objWordApp = new ApplicationClass();
???????????????? objWordApp.Visible = false;
???????????????? Word.Document objWordDoc = objWordApp.Documents.Open(ref this.封面模板,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "dh", this.封面["dh"], false);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "zrdw", this.封面["zrdw"], false);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "jdrq", this.封面["jdrq"], false);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "bgqx", this.封面["bgqx"], false);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "mj", this.封面["mj"], false);
???????????????? if (String.IsNullOrEmpty(ajtm2))
???????????????? {
???????????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "ajtm1", this.封面["ajtm1"], false);
???????????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "ajtm2", "", false);
???????????????? }
???????????????? else
???????????????? {
???????????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "ajtm1", this.封面["ajtm1"], false);
???????????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "ajtm2", this.封面["ajtm2"], false);
???????????????? }
???????????????? objWordDoc.SaveAs(ref 封面R, ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing);
???????????????? objWordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
???????????????? objWordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
???????????????? System.Diagnostics.Process.Start(this.封面R.ToString());
???????????? }
???????????? catch (Exception objException)
???????????? {
???????????????? throw objException;
???????????? }
???????? }
???????? public void Fill目錄模板(DataTable result)
???????? {
???????????? try
???????????? {
???????????????? this.目錄R += DateTime.Now.ToString("yyyyMMddHHmmssms") + ".xls";
???????????????? Excel.Application objExcelApp = new Excel.Application();
???????????????? objExcelApp.Visible = false;
???????????????? Excel.Workbook objExcelWB = objExcelApp.Workbooks.Open(目錄模板, oMissing, oMissing, oMissing,
????????????????????????????????????????????????????????????????????????????????? oMissing, oMissing, oMissing,
????????????????????????????????????????????????????????????????????????????????? oMissing, oMissing, oMissing,
????????????????????????????????????????????????????????????????????????????????? oMissing, oMissing, oMissing,
????????????????????????????????????????????????????????????????????????????????? oMissing, oMissing);
???????????????
???????????????? Excel.Worksheet objExcelWS = objExcelWB.Sheets[1] as Excel.Worksheet;
???????????????? for (int row = 0; row < result.Rows.Count; row++)
???????????????? {
???????????????????? objExcelWS.Cells[row + 4, 1] = result.Rows[row]["文件順序號(hào)"].ToString().Length > 0 ? result.Rows[row]["文件順序號(hào)"].ToString() : "";
???????????????????? objExcelWS.Cells[row + 4, 2] = result.Rows[row]["文件編號(hào)"].ToString().Length > 0 ? result.Rows[row]["文件編號(hào)"].ToString() : "";
???????????????????? objExcelWS.Cells[row + 4, 3] = result.Rows[row]["責(zé)任人"].ToString().Length > 0 ? result.Rows[row]["責(zé)任人"].ToString() : "";
???????????????????? objExcelWS.Cells[row + 4, 4] = result.Rows[row]["文件題名"].ToString().Length > 0 ? result.Rows[row]["文件題名"].ToString() : "";
???????????????????? objExcelWS.Cells[row + 4, 5] = DateTime.Parse(result.Rows[row]["日期"].ToString()).ToShortDateString();
???????????????????? objExcelWS.Cells[row + 4, 6] = result.Rows[row]["頁號(hào)"].ToString().Length > 0 ? result.Rows[row]["頁號(hào)"].ToString() : "";
???????????????????? objExcelWS.Cells[row + 4, 7] = result.Rows[row]["附注"].ToString().Length > 0 ? result.Rows[row]["附注"].ToString() : "";
???????????????? }
???????????????? objExcelWB.SaveAs(目錄R, oMissing, oMissing, oMissing,
????????????????????????????????????????? oMissing, oMissing, Excel.XlSaveAsAccessMode.xlNoChange,
????????????????????????????????????????? oMissing, oMissing, oMissing, oMissing, oMissing);
???????????????
???????????????? objExcelWB.Close(oMissing, oMissing, oMissing);
???????????????? objExcelApp.Quit();
???????????????? System.Diagnostics.Process.Start(this.目錄R);
???????????? }
???????????? catch (Exception objException)
???????????? {
???????????????? throw objException;
???????????? }
???????? }
???????? public void Fill脊背模板(DataTable result)
???????? {
???????????? try
???????????? {
???????????????? this.脊背R += DateTime.Now.ToString("yyyyMMddHHmmssms") + ".doc";
???????????????? this.背脊 = new Dictionary<string, string>();
???????????????? this.背脊.Add("dh", result.Rows[0]["檔號(hào)"].ToString());
???????????????? this.背脊.Add("ajtm", result.Rows[0]["案卷題名"].ToString().Length > 0 ? result.Rows[0]["案卷題名"].ToString() : "");
???????????????? Word.ApplicationClass objWordApp = new ApplicationClass();
???????????????? objWordApp.Visible = false;
???????????????? Word.Document objWordDoc = objWordApp.Documents.Open(ref this.脊背模板,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "dh", this.背脊["dh"], false);
???????????????? this.WordReplace(objWordApp, objWordDoc, oMissing, "ajtm", this.背脊["ajtm"], false);
???????????????? objWordDoc.SaveAs(ref 脊背R, ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing,
????????????????????????????????????????????? ref oMissing, ref oMissing, ref oMissing);
???????????????? objWordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
???????????????? objWordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
???????????????? System.Diagnostics.Process.Start(this.脊背R.ToString());
???????????? }
???????????? catch (Exception objException)
???????????? {
???????????????? throw objException;
???????????? }
???????? }
???????? private void CheckFile(string filePath)
???????? {
???????????? try
???????????? {
???????????????? if (File.Exists(filePath))
???????????????? {
???????????????????? File.Delete(filePath);
???????????????? }
???????????? }
???????????? catch (Exception objException)
???????????? {
???????????????? throw objException;
???????????? }
???????? }
???????? private void WordReplace(Word.ApplicationClass objWordApp, Word.Document objWordDoc, object oMissing, string findText, string replaceText, bool matchCase)
???????? {
???????????? object FindText = findText;
???????????? object MatchCase = matchCase;
???????????? object ReplaceWith = replaceText;
???????????? object Replace = Word.WdReplace.wdReplaceAll;
???????????? objWordApp.Selection.Find.Execute(ref FindText, ref MatchCase, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref ReplaceWith, ref Replace, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
???????? }
???? }
}
總結(jié)
以上是生活随笔為你收集整理的C#操作word文档(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Cassandra实战》CassSel
- 下一篇: 面试(2)