阅读单词Doc.使用c#

本文关键字:使用 Doc 单词 | 更新日期: 2023-09-27 17:58:37

我已经创建了一个应用程序。富文本框中的文本存储在word文档中。使用单词interop.dll。现在我想把单词doc读回我的richtextbox。

我用oDoc.Content.Text阅读。它在起作用,但没有对齐。我需要在单词doc中加载相同的alingment。

我还使用了这个代码

oDoc.Activate();
oDoc.ActiveWindow.Selection.WholeStory();
oDoc.ActiveWindow.Selection.Copy()
IDataObject data = Clipboard.GetDataObject();
txtdocument.Text = Clipboard.GetDataObject()
       .GetData(DataFormats.Text).ToString();

但它抛出了一个错误:

对象引用未设置为对象的实例。

阅读单词Doc.使用c#

您的程序是单线程单元吗?否则,Clipboard类将不起作用。

参考

剪贴板类只能在设置为单线程单元(STA)模式的线程中使用。若要使用此类,请确保Main方法标记有STAThreadAttribute属性。

可能Clipboard.GetDataObject();返回一个空引用,然后在最后一行尝试访问其成员

txtdocument.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

总之,只是一个建议,为什么你不更换最后一行

txtdocument.Text = Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();

这个:

txtdocument.Text = data.GetData(DataFormats.Text).ToString();

EDIT:检查变量oDoc、txtDocument或data中是否有一个为null。。

新编辑:

Thread tempThread = new Thread(new ThreadStart(threadstuff))
tempThread.SetApartmentState(System.Threading.ApartmentState.STA);
tempThread.Start();