ASP.NET C#如何读取word,写入word,复制内容到另一个word文档,批量修改文件名

首先要添加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;
   
}
}

 

你可能感兴趣的:(asp.net)