【问题标题】:How to get the contents of attachments of a file如何获取文件附件的内容
【发布时间】:2013-12-23 15:41:53
【问题描述】:

我正在尝试获取附件的内容。它可能是一个 excel 文件、文档文件或文本文件,但我想将它存储在数据库中,所以在这里我使用以下代码:-

  foreach (FileAttachment file in em.Attachments)// Here em is type of EmailMessage class
      {
      Console.Write("Hello friends" + file.Name);
      file.Load();
      var stream = new System.IO.MemoryStream(file.Content);
      var reader = new System.IO.StreamReader(stream, UTF8Encoding.UTF8);
      var text = reader.ReadToEnd();
      reader.Close();
      Console.Write("Text Document" + text);
      }

因此,通过打印 file.name 显示附件文件名,但在控制台上打印“文本”时,如果附件是 .txt 类型,则它正在工作,但如果它是 .doc 或 .xls 类型,那么它会显示一些符号结果.我没有得到任何文本结果。我是做错了什么还是错过了什么。我想要任何类型的文件附件的文本结果。请帮助我,我是 C# 的初学者

【问题讨论】:

  • .png 图像文件的文本结果是什么?
  • @O.R.Mapper 取决于 OP 是否要使用 OCR。 :P

标签: c# .net visual-studio-2010


【解决方案1】:

您看到的是文件中的实际内容。尝试用记事本打开一个。

.NET 中没有内置方式来显示任意文件格式的“文本内容”。您必须创建(最好使用已经解决此问题的第三方库)某种从富文本文档中提取纯文本的逻辑。

参见例如How to extract text from Pdf, Word and Excel documents?Extract text from pdf and word files 等。

【讨论】:

    【解决方案2】:

    首先,您在读取二进制文件时期望什么?

    您的结果正是预期的结果。文本文件可以显示为字符串,但 doc 或 xls 文件是二进制文件。您将看到文件的二进制内容。您将需要使用工具/lib 从人类可读格式的二进制文件中获取文本/内容。

    【讨论】:

      【解决方案3】:

      TXT 类型很简单,DOC 或 XLS 复杂得多。您可以看到 TXT 因为只是文本,DOC 或 XLS 或 PPT 或其他需要通过其他机制解释的东西。 例如,您在 Word 文档或 Excel 文档中的图表上有不同的颜色或字体大小,您如何在简单的 TextBox 或 RichTextBox 中显示?简答,您不能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        • 2019-10-21
        • 2011-06-02
        相关资源
        最近更新 更多