【发布时间】:2013-09-01 03:55:29
【问题描述】:
我正在尝试使用 C# 阅读 word 文档。我能够获取所有文本,但我希望能够逐行阅读并存储在列表中并绑定到gridview。目前,我的代码仅返回一个包含所有文本的项目列表(而不是根据需要逐行)。我正在使用 Microsoft.Office.Interop.Word 库来读取文件。以下是我到目前为止的代码:
Application word = new Application();
Document doc = new Document();
object fileName = path;
// Define an object to pass to the API for missing parameters
object missing = System.Type.Missing;
doc = word.Documents.Open(ref fileName,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
String read = string.Empty;
List<string> data = new List<string>();
foreach (Range tmpRange in doc.StoryRanges)
{
//read += tmpRange.Text + "<br>";
data.Add(tmpRange.Text);
}
((_Document)doc).Close();
((_Application)word).Quit();
GridView1.DataSource = data;
GridView1.DataBind();
【问题讨论】:
-
这就是上面列出的所有代码。我将在本周末开始一个项目,该项目将读取一个 word 文件,然后取出双引号之间的所有代码并插入一个变量“A”,他说。然后我必须将逗号后面的部分替换为“A,”B。对于想要对其代码进行一些统计的作者。我会把我的代码放出来让大家看看。有什么特殊的进口需要做的吗?
-
我会使用像 DocX docx.codeplex.com 这样的轻量级库。
-
@Hamdi 谢谢我不知道。我已经尝试过了,与 Interop 相比,它使用起来确实很简单。再次感谢。
-
使用来自 ASP.NET 的 Office Interop 或其他服务器技术是一个可怕的想法。这些 API 是为在桌面应用程序中使用而编写的,用于自动化 Office(一套桌面应用程序)。服务器应用程序在很多方面都不同,这使得在其中使用 Office Interop 成为一个非常非常糟糕的主意。它也不受 Microsoft 支持,并且可能违反您的 Office 许可证。见Considerations for server-side Automation of Office
标签: c# asp.net .net ms-word office-interop