在 C# 中从文档中读取内容

本文关键字:读取 文档 | 更新日期: 2023-09-27 18:36:09

我使用流阅读器从.docx文件中读取数据,并以字符串形式获取内容并使用Console.writeLine打印。此内容与我使用File.ReadAllBytes函数为同一文件获得的内容不同。

代码如下所示

第一个代码

StreamReader streamReader = new StreamReader("D:''sample.docx");
String text = streamReader.ReadToEnd();
Console.WriteLine(streamReader.CurrentEncoding);//it shows the ecoding as UTF8
byte[] array = Encoding.UTF8.GetBytes(text)
File.WriteAllBytes("D:''file3.txt", array);

这是我使用上述代码时的输出

PK     ! ߤ�lZ      [Content_Types].xml �(�                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 ���n�0E�����Ub袪*�>�-R�{V��Ǽ��QU�
l"%3��3Vƃ�ښl    �w%�=���^i7+���-d&�0�A�6�l4��L60#�Ò�S
O����X� �*��V$z�3��3������%p)O�^����5}nH"d�s�Xg�L�`���|�ԟ�|�P�rۃs�?�PW��tt4Q+��"�wa���|T'y���,N���U�%���-D/��ܚ��X�ݞ�(���<E��)�� ;�N�L?�F�˼��܉��<Fk� �h�y����ڜ���q�i��?�ޯl��i� 1��]�H�g��m�@����m�  �� PK     ! ���   N   _rels/.rels �(�                    

第二个代码

byte[] x = File.ReadAllBytes("D:''sample.docx");
File.WriteAllBytes("C:''file3.txt", x);

两个文件内容不同。我的第一个代码有什么可能的方法可以获得与第二个代码相同的内容?

这是我使用ReadAllBytes时的输出

PK     ! ߤÒlZ      [Content_Types].xml ¢(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ´”ËnÂ0E÷•ú‘·Ub袪*‹>–-Ré{Vý’Ǽþ¾QU‘
l"%3÷Þ3VƃÑÚšl  µw%ë=–“^i7+Ù×ä-d&á”0ÞAÉ6€l4¼½L60#µÃ’ÍS
Oœ£œƒXø Ž*•V$z3„ü3à÷½Þ—Þ%p)Oµ^ “²×5}nH"dÙsÓXg•L„`´‰ê|éÔŸ”|—PrÛƒsðŽ?˜PWŽìtt4Q+ÈÆ"¦wa©‹¯|T'y¹°¤,NÛàôU¥%´úÚ-D/‘ÎÜš¢­X¡Ýžÿ(¦¼<EãÛ)‘à ;çN„L?¯Fñ˼¤¢Ü‰˜¸<FkÝ  ‘h¡yöÏæØÚœŠ¤Îqôi£ã?ÆÞ¯l­Îià 1éÓ]›HÖgÏõm @ÈæÛûmø  ÿÿ PK     ! ‘·ï   N   _rels/.rels ¢(          

在 C# 中从文档中读取内容

要从单词中读取数据,您应该使用单词互操作Microsoft。

下面的示例演示如何从单词中读取数据。

添加Microsoft.Office.Interop.Word引用。

Application application = new Application();
// Open a doc file.
Document document = application.Documents.Open("D:''Test.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);
}
foreach (var item in data)
{
    Console.WriteLine(item);
}
// Close word.
application.Quit();