gpt4 book ai didi

c#从文本文件复制到word文档

转载 作者:太空宇宙 更新时间:2023-11-03 22:41:03 25 4
gpt4 key购买 nike

我想将数据从文本文件复制到 word 文件。我已经使用 Interop 尝试使用不同的替代方案,例如 string arrayStringBuilderStreamReader,效果很好,但是这需要太多时间。如果有人能向我推荐更好的,我将不胜感激。在网上查了很多表格,但找不到。

仅供引用:我的文本文件包含超过 1,00,000 行。

这是我试过的一个:

string[] lines = File.ReadAllLines(path); //path is text file path
var doc = new MSWord.Document();

foreach (string lin in lines)
{
doc.Content.Text += lin.ToString();
}

doc.Save();

好吧,这很好用,但会花费很多时间,有时还会抛出如下错误:

Unhandled Exception: System.Runtime.InteropServices.COMException: Word has encountered a problem.

最佳答案

    static void Main(string[] args)
{
Word.Application wordApp = new Word.Application();
Word.Document wordDoc = wordApp.Documents.Add();
Stopwatch sw = Stopwatch.StartNew();
System.Console.WriteLine("Starting");
string path = @"C:\";
StringBuilder stringBuilder = new StringBuilder();
using (FileStream fs = File.Open(path + "\\big.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (BufferedStream bs = new BufferedStream(fs))
using (StreamReader sr = new StreamReader(bs))
{
wordDoc.Content.Text = sr.ReadToEnd();
wordDoc.SaveAs("big.docx");
}
sw.Stop();
System.Console.WriteLine($"Complete Time :{sw.ElapsedMilliseconds}");
System.Console.ReadKey();
}

输出:

Starting
Complete Time :5556

或者您可以使用并行:

    using (StreamReader sr = new StreamReader(bs))
{
Parallel.ForEach(sr.ReadToEnd(), i=>
{
stringBuilder.Append(i);
});
wordDoc.Content.Text = stringBuilder.ToString();
wordDoc.SaveAs(path + "\\big3.docx");
}

输出:

Starting
Complete Time :2587

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

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