在 C# (MVC) 中将内容从一个 Word 文档复制到另一个
Copy Content from one Word Document to another in C# (MVC)
我是论坛的新人,我刚开始在 Visual studio 2013 年的一个新 Web 应用程序中工作。我需要创建一个应用程序,将所有内容从一个 Word 文档复制到另一个。我发现 this plugin 应该可以完成这项工作,但我不知道如何将它放入我的代码中并使其工作。我需要在 MVC 应用程序中执行此操作,所以也许我没有将代码放在正确的位置(现在它在模型中)。有人可以帮我告诉我如何让它工作吗?请查看我的代码:
using Spire.Doc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace DocumentApplication.Models
{
public class HomeModel
{
public string Message { get; set; }
}
public class CopyDocument
{
Document sourceDoc = new Document("source.docx");
Document destinationDoc = new Document("target.docx");
foreach (Section sec in sourceDoc.Sections)
{
foreach (DocumentObject obj in sec.Body.ChildObjects)
{
destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone());
}
}
destinationDoc.SaveToFile("target.docx");
System.Diagnostics.Process.Start("target.docx");
}
public class OpenDocument
{
Document document = new Document(@"C:\Users\daniel\Documents\ElAl-DRP.doc");
}
}
我无法编译它,因为我在 "foreach" 行上有一个错误:"Invalid token 'foreach' in class' struct' or interface member declaration".
请帮帮我
提前致谢
好吧,这很粗糙,但至少可以用。
我无法使 Spire 中的示例正常工作,我必须进行一些更改。
此示例将获取上传的文件,将其保存到 "AppData/uploads" 文件夹,然后它会在 "AppData/copies" 文件夹中创建该保存文件的副本。
我的改变
- 我们在内存中创建目标文档然后稍后保存的方式。
- 在 "foreach" 循环中创建一个新部分
- 将克隆的部分添加到新部分
列表项
- SaveDocument 方法的文档格式(这是一个巨大的
假设)
控制器
using System.IO;
using System.Web;
using System.Web.Mvc;
using Spire.Doc;
using Spire.Doc.Collections;
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
var outputPath = Path.Combine(Server.MapPath("~/App_Data/copies"), fileName);
var sourceDoc = new Document(path);
var destinationDoc = new Document();
foreach (Section sec in sourceDoc.Sections)
{
var newSection = destinationDoc.AddSection();
foreach (DocumentObject obj in sec.Body.ChildObjects)
{
newSection.Body.ChildObjects.Add(obj.Clone());
}
}
destinationDoc.SaveToFile(outputPath, FileFormat.Docx);
}
return View();
}
}
查看
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" id="file"/>
<button type="submit">Save</button>
}
我是论坛的新人,我刚开始在 Visual studio 2013 年的一个新 Web 应用程序中工作。我需要创建一个应用程序,将所有内容从一个 Word 文档复制到另一个。我发现 this plugin 应该可以完成这项工作,但我不知道如何将它放入我的代码中并使其工作。我需要在 MVC 应用程序中执行此操作,所以也许我没有将代码放在正确的位置(现在它在模型中)。有人可以帮我告诉我如何让它工作吗?请查看我的代码:
using Spire.Doc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace DocumentApplication.Models
{
public class HomeModel
{
public string Message { get; set; }
}
public class CopyDocument
{
Document sourceDoc = new Document("source.docx");
Document destinationDoc = new Document("target.docx");
foreach (Section sec in sourceDoc.Sections)
{
foreach (DocumentObject obj in sec.Body.ChildObjects)
{
destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone());
}
}
destinationDoc.SaveToFile("target.docx");
System.Diagnostics.Process.Start("target.docx");
}
public class OpenDocument
{
Document document = new Document(@"C:\Users\daniel\Documents\ElAl-DRP.doc");
}
}
我无法编译它,因为我在 "foreach" 行上有一个错误:"Invalid token 'foreach' in class' struct' or interface member declaration".
请帮帮我
提前致谢
好吧,这很粗糙,但至少可以用。
我无法使 Spire 中的示例正常工作,我必须进行一些更改。
此示例将获取上传的文件,将其保存到 "AppData/uploads" 文件夹,然后它会在 "AppData/copies" 文件夹中创建该保存文件的副本。
我的改变
- 我们在内存中创建目标文档然后稍后保存的方式。
- 在 "foreach" 循环中创建一个新部分
- 将克隆的部分添加到新部分 列表项
- SaveDocument 方法的文档格式(这是一个巨大的 假设)
控制器
using System.IO;
using System.Web;
using System.Web.Mvc;
using Spire.Doc;
using Spire.Doc.Collections;
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
var outputPath = Path.Combine(Server.MapPath("~/App_Data/copies"), fileName);
var sourceDoc = new Document(path);
var destinationDoc = new Document();
foreach (Section sec in sourceDoc.Sections)
{
var newSection = destinationDoc.AddSection();
foreach (DocumentObject obj in sec.Body.ChildObjects)
{
newSection.Body.ChildObjects.Add(obj.Clone());
}
}
destinationDoc.SaveToFile(outputPath, FileFormat.Docx);
}
return View();
}
}
查看
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="file" id="file"/>
<button type="submit">Save</button>
}