gpt4 book ai didi

c# - 将文本从word文件复制到一个新的word

转载 作者:太空狗 更新时间:2023-10-29 17:50:55 24 4
gpt4 key购买 nike

我正在从 word 文件中读取文本,并从读取的文本中替换一些文本。

var wordApp = new Microsoft.Office.Interop.Word.Application();
object file = path;

object nullobj = System.Reflection.Missing.Value;

var doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj,
ref nullobj, ref nullobj, ref nullobj);
doc.ActiveWindow.Selection.WholeStory();

doc.ActiveWindow.Selection.Copy();

IDataObject data = Clipboard.GetDataObject();
var text =data.GetData(DataFormats.Text);

所以我有来自原始 word 文件的文本,现在我需要将它传递到一个不存在的新 word 文件(新文本)。

我试过了

 ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "WINWORD.EXE";
Process.Start(startInfo);

这将打开未物理保存在文件系统中的新 word 文件,这很好。但我不确定如何将文本值传递给这个新文件。

更新

运行上面的代码后我尝试了

 var wordApp = new Microsoft.Office.Interop.Word.Application();            
var doc = wordApp.ActiveDocument;

出现“此命令不可用,因为没有打开文档。”

最佳答案

您需要做的就是:

using System.Runtime.InteropServices;
using MSWord = Microsoft.Office.Interop.Word;

namespace ConsoleApplication6
{
class Program
{
static void Main()
{
var application = new MSWord.Application();
var originalDocument = application.Documents.Open(@"C:\whatever.docx");

originalDocument.ActiveWindow.Selection.WholeStory();
var originalText = originalDocument.ActiveWindow.Selection;

var newDocument = new MSWord.Document();
newDocument.Range().Text = originalText.Text;
newDocument.SaveAs(@"C:\whateverelse.docx");

originalDocument.Close(false);
newDocument.Close();

application.Quit();

Marshal.ReleaseComObject(application);
}
}
}

关于c# - 将文本从word文件复制到一个新的word,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com