Asp.net c#逐行读取word文档
这里的Asp.net c#逐行读取word文档,c#,asp.net,C#,Asp.net,这里的UploadContacts是文件上载控件。我正在通过这个上传一个文档文件。我的目标是逐行阅读word文档并进入另一个功能,但它不起作用 引发异常找不到文件“C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\tr.docx”。 有什么建议吗?是用户计算机上的文件还是承载web应用程序的服务器上的文件 因为你说用户正在上传一个文件,我得到的印象是用户正在选择他们机器上的路径。请记住,您的c#代码正在其他地方的
UploadContacts
是文件上载控件。我正在通过这个上传一个文档文件。我的目标是逐行阅读word文档并进入另一个功能,但它不起作用
引发异常找不到文件“C:\Program Files(x86)\Common Files\Microsoft Shared\DevServer\10.0\tr.docx”。
有什么建议吗?是用户计算机上的文件还是承载web应用程序的服务器上的文件 因为你说用户正在上传一个文件,我得到的印象是用户正在选择他们机器上的路径。请记住,您的c#代码正在其他地方的服务器上执行。它不能直接访问用户计算机(除非它位于共享网络上)
在过去,当我需要用户将文件上传到我的web应用程序时,我会使用。使用mvc非常简单。下面是其他人提出的堆栈溢出问题,将帮助您了解如何使用它 如果要逐行读取,请使用以下代码:
string line;
string path = UploadContacts.PostedFile.FileName;
var reader = new StreamReader(path);
while ((line = reader.ReadLine()) != null)
{
var link = line;
if (link != string.Empty)
{
// another functionality ;
}
Console.WriteLine(line);
}
//循环浏览文档中的所有行。
应用程序=新应用程序();
Document Document=application.Documents.Open(“C:\\new folder\\word.docx”);
String read=String.Empty;
列表数据=新列表();
对于(int i=0;i
这种例外情况还不够明确吗?Word文档不是纯文本文档,因此即使您让流媒体正常工作(将其放入流中),您也无法阅读任何内容。@sphair,如果它是.doc
,您将是正确的,但是.docx
是XML,因此可以作为纯文本读取document@freefaller:docx是一个zip文件,其内部文件为xml格式。事情并不是那么简单。也就是说,我认为OP想要读取文档的内容,而读取xml并不是很有用。仅供参考,OpenXMLSDK可以帮助您提取文档的相关部分哦,我不知道-谢谢:)
// Loop through all lines in the document.
Application application = new Application();
Document document = application.Documents.Open("C:\\new folder\\word.docx");
String read = string.Empty;
List<string> data = new List<string>();
for (int i = 0; i < document.Paragraphs.Count; i++)
{
string temp = document.Paragraphs[i + 1].Range.Text.Trim();
if (temp != string.Empty)
data.Add(temp);
}
// Close word.
application.Quit();`