首先要添加COM引用
Microsoft word 11.0 Object Library.
然后添加.NET引用
Microsoft.Office.Interop.Word.dll
下载Aspose.Words引用
Aspose.Words.dll
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Text;
//复制到另一个doc
using Aspose.Words;
//读取引用
using Microsoft.Office.Core;
using Microsoft.Office.Interop;
//写入引用
using System.Reflection;
using MSWord=Microsoft.Office.Interop.Word;
publicpartialclassMore:System.Web.UI.Page
{
protectedvoidPage_Load(object sender,EventArgs e)
{
}
//批量改文件名
protectedvoidButton1_Click(object sender,EventArgs e)
{
StringBuilder sb =newStringBuilder();
string path=string.Format("File/");
String strField =Server.MapPath(string.Format("~/{0}",path));
//针对当前目录建立目录引用对象
DirectoryInfo dirInfo =newDirectoryInfo(strField);
int count=1;
foreach(FileInfo fi in dirInfo.GetFiles())
{
string ext=fi.Name.Substring(fi.Name.LastIndexOf('.'));
File.Move(MapPath("~/File/"+ fi.Name),MapPath("~/File/"+ count.ToString()+ ext));
count++;
}
}
/// <summary>
/// 复制doc文档里面的内容到另一个doc文件之中,需要下载Aspose.Words.dll控件
/// </summary>
/// <param name="tempath">复制的doc文档路径</param>
/// <param name="filepath">要复制到的doc文档路径</param>
publicvoidCopyWordToOther(string tempath,string filepath)
{
Document doc1 =newDocument(tempath);
DocumentBuilder builder1 =newDocumentBuilder(doc1);
Document doc2 =newDocument(filepath);
DocumentBuilder builder2 =newDocumentBuilder(doc2);
Section sec1 = builder1.CurrentSection;
builder2.CurrentSection.AppendContent(sec1);
doc2.Save(filepath);
}
/// <summary>
/// 写入word
/// </summary>
publicvoidWordWrite()
{
object path;//文件路径变量
string strContent;//文本内容变量
MSWord.Application wordApp;//Word应用程序变量
MSWord.Document wordDoc;//Word文档变量
path =MapPath("~/File/test.doc");//保存路径
wordApp =newMSWord.ApplicationClass();//初始化
//如果已存在,则删除
if(File.Exists((string)path))
{
File.Delete((string)path);
}
//由于使用的是COM库,因此有许多变量需要用Missing.Value代替
ObjectNothing=Missing.Value;
wordDoc = wordApp.Documents.Add(refNothing,refNothing,refNothing,refNothing);
strContent ="doc内容";//内容
wordDoc.Paragraphs.Last.Range.Text= strContent;
//WdSaveFormat为Word 2007文档的保存格式
object format =MSWord.WdSaveFormat.wdFormatDocument;
//将wordDoc文档对象的内容保存为DOCX文档
wordDoc.SaveAs(ref path,ref format,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing,refNothing);
//关闭wordDoc文档对象
wordDoc.Close(refNothing,refNothing,refNothing);
//关闭wordApp组件对象
wordApp.Quit(refNothing,refNothing,refNothing);
Console.WriteLine(path +" 创建完毕!");
}
/// <summary>
/// 读取word内容
/// </summary>
/// <param name="docpath">word文档路径</param>
/// <returns></returns>
publicstringDoc2Text(string docpath)
{
//实例化COM
Microsoft.Office.Interop.Word.ApplicationClass wordApp =newMicrosoft.Office.Interop.Word.ApplicationClass();
object fileobj = docpath;
object nullobj =System.Reflection.Missing.Value;
//打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref fileobj,ref nullobj,ref nullobj,
ref nullobj,ref nullobj,ref nullobj,
ref nullobj,ref nullobj,ref nullobj,
ref nullobj,ref nullobj,ref nullobj,ref nullobj,ref nullobj,ref nullobj,ref nullobj
);
//取得doc文件中的文本
string outText = doc.Content.Text;
//关闭文件
doc.Close(ref nullobj,ref nullobj,ref nullobj);
//关闭COM
wordApp.Quit(ref nullobj,ref nullobj,ref nullobj);
//返回
return outText;
}
}