【发布时间】:2018-04-27 20:20:49
【问题描述】:
我正在尝试使用 c# 编写一些文本并将其附加到 word 文件中,但是,我无法获得预期的结果。你能帮我解决这个问题吗?
下面是我的代码-
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace WFA1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//FileStream F = new FileStream("testdoc2.docx", FileMode.OpenOrCreate, FileAccess.ReadWrite);
Console.WriteLine("Sourav");
string filename = @"C:\\Desktop\\myfile.docx";
Console.WriteLine(filename);
try
{
using (FileStream fs = File.OpenWrite(filename))
{
Byte[] content = new UTF8Encoding(true).GetBytes("Hello I am learning C#");
fs.Write(content, 0, content.Length);
}
}
catch (Exception Ex)
{
Console.Write(e.ToString());
}
}
}
}
上面的代码是一个windows窗体应用程序代码。我已经使用 FileStream 类来写入数据。但是我面临以下问题:-
- 没有创建文件
- 代码一直运行,直到我手动停止。
因此,我也尝试了以下方法,并且能够将文本写入文件。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Microsoft.Office.Interop.Word;
namespace WFA1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = app.Documents.Open("C:\\Users\\SS5014874\\Desktop\\testdoc1.docx");
object missing = System.Reflection.Missing.Value;
//string s = "Hi";
//Console.WriteLine(s);
doc.Content.Text = textBox1.Text.ToString();
doc.Save();
doc.Close(ref missing);
app.Quit(ref missing);
}
}
}
但是,我仍然没有得到预期的结果。以下是我的问题:-
- 无法附加任何文本。请让我知道如何使用这种方法追加。有什么方法可以调用来追加文本。
- 即使我使用了 Quit 方法,应用程序也不会退出,直到我手动退出。
另外,我在哪里可以找到类Microsoft.Office.Interop.Word的方法列表
请让我知道任何其他信息。
【问题讨论】:
-
或使用它来创建文档并注意
ActiveDocument.Savestackoverflow.com/questions/32693480/… 如果你不喜欢这些.. 然后做一个简单的谷歌搜索有更多的例子。 -
@MethodMan and upvoter:该帖子中接受的解决方案(您的第一条评论,而不是第二条评论)完全不正确,发布者正在覆盖文档并将其替换为文本文件,但他给出了文本归档一个
.docx扩展名,就好像它不是一个word 文档一样。但至少有人确实在那里发布了一个有用的链接:How to: Programmatically Insert Text into Word Documents -
我对链接的看法是,您可以使用发布的内容,然后取出或添加您需要适合您的用例的代码。