Код для word to text

Microsoft says you shouldn’t use Microsoft Office Interop to manipulate documents in an automated application.

You can use a free library like Spire Doc to convert a Word Doc to TXT, then open the txt file. I think there is a way to save directly to MemoryStream from Spire, but I’m not sure. (I know there is in Aspose Words, but that isn’t free).

private void button1_Click(object sender, EventArgs e)
{
    //Open word document
    Document document = new Document();
    string docPath = @"C:Users<computer name>DocumentsTestItemHelpers";

    document.LoadFromFile(Path.Combine(docPath,"TestWordDoc.docx"));

    //Save doc file.
    document.SaveToFile(Path.Combine(docPath,"TestTxt.txt"), FileFormat.Txt);

    string readText = File.ReadAllText(Path.Combine(docPath,"TestTxt.txt"));

    //do regex here
}

Edit: If you’re going to use Interop because it is okay for user-run activities (as pointed out in comments), you can save the document as a text file then do the regex:

private void button1_Click(object sender, EventArgs e)
{
    string docPath = @"C:Users<computer name>DocumentsTestItemHelpers"
    string testFile = "TestWordDoc.docx";

    Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
    Document document = application.Documents.Open(Path.Combine(docPath,testFile );
    application.ActiveDocument.SaveAs(Path.Combine(docPath,"TestTxt.txt"), WdSaveFormat.wdFormatText, ref noEncodingDialog);
    ((_Application)application).Quit();

    string readText = File.ReadAllText(Path.Combine(docPath,"TestTxt.txt"));

    //do regex here
}

  • Download source code without executable — 3.8 KB
  • Download source code with executable — 34.1 KB

Introduction

In this tip, I’ll explain how to convert a Microsoft Word document to a text file in C#. To do this, Word must be installed.

Adding a reference to the Microsoft Word Object Library

The first step is to add a reference to the Microsoft Word Object Library. In Visual Studio, choose «Add Reference…», go to «COM», and select «Microsoft Word [version number here] Object Library».
Image 1
As you can see on the image, I use the Microsoft Word 15.0 Object Library, that’s the library of Word 2013. You can have another number than 15.0.

The code

At the top of the code file, we will add the following using [namespace] statements:

using System.IO;
using Word = Microsoft.Office.Interop.Word;

Now, we can just write Word.Document instead of Microsoft.Office.Interop.Word.Document for example.
Now, we will ask the user which file (s)he wants to convert, using the following code:

Console.WriteLine("Please enter the full file path of your Word document (without quotes):");
object path = Console.ReadLine();
Console.WriteLine("Please enter the file path of the text document in which you want to store the text of your word document (without quotes):");
string txtPath = Console.ReadLine();

As you can read in the code, for the path of the Word document, the full path is required. If you just write test.docx, then you’ll actually try to convert C:Windowssystem32test.docx instead of the test.docx file in the folder of the converter. For the file path of the text file, it is OK to write test.txt, because then it will create the test.txt file in the folder of the converter. It is also necessary that the path to the Word file is an object, not a string, because when we’re going to open the Word file, the parameters should be objects.
Now, we’ll open the Word file and retrieve the text using the following code:

Word.Application app = new Word.Application();
Word.Document doc;
object missing = Type.Missing;
object readOnly = true;
try
{
    doc = app.Documents.Open(ref path, ref missing, ref readOnly, 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 text = doc.Content.Text;
    File.WriteAllText(txtPath, text);
    Console.WriteLine("Converted!");
}

Here, we create a Word Application that opens the document. The first argument of the Open method is the file path, the third argument is whether we want to open the file as read-only (yes in this case). The text is stored in Content.Text, and then we use the File.WriteAllText method to write the text to a file. Now, we’ll create the catch and finally blocks:

catch
{
    Console.WriteLine("An error occured. Please check the file path to your word document, and whether the word document is valid.");
}
finally
{
    object saveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
    app.Quit(ref saveChanges, ref missing, ref missing);
}

Because we don’t want to save the changes (we didn’t even make changes), we use WdSaveOptions.wdDoNotSaveChanges. The Application.Quit method closes all open documents, and quits the Word Application.
If we merge all code snippets, we get this:

Console.WriteLine("Please enter the full file path of your Word document (without quotes):");
object path = Console.ReadLine();
Console.WriteLine("Please enter the file path of the text document in which you want to store the text of your word document (without quotes):");
string txtPath = Console.ReadLine();
Word.Application app = new Word.Application();
Word.Document doc;
object missing = Type.Missing;
object readOnly = true;
try
{
    doc = app.Documents.Open(ref path, ref missing, ref readOnly, 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 text = doc.Content.Text;
    File.WriteAllText(txtPath, text);
    Console.WriteLine("Converted!");
}
catch
{
    Console.WriteLine("An error occured. Please check the file path to your word document, and whether the word document is valid.");
}
finally
{
    object saveChanges = Word.WdSaveOptions.wdDoNotSaveChanges;
    app.Quit(ref saveChanges, ref missing, ref missing);
}

History

  • 5 Jan 2014: First version

Here’s a script to save all Word documents in and below a given directory to text.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import fnmatch, os, pythoncom, sys, win32com.client

wordapp = win32com.client.gencache.EnsureDispatch("Word.Application")

try:
    for path, dirs, files in os.walk(sys.argv[1]):
        for doc in [os.path.abspath(os.path.join(path, filename)) for filename in files if fnmatch.fnmatch(filename, '*.doc')]:
            print "processing %s" % doc
            wordapp.Documents.Open(doc)
            docastxt = doc.rstrip('doc') + 'txt'
            wordapp.ActiveDocument.SaveAs(docastxt, FileFormat=win32com.client.constants.wdFormatTextLineBreaks)
            wordapp.ActiveWindow.Close()
finally:
    wordapp.Quit()

Requires the Python for Windows extensions, and MS Word.

Shows how simple COM scripting can be in Python!

Why We Convert Word to Text?

Text is a format usually contains plain text or with minimum formatting. We can get benefits from Word to Text conversion:

  • Much smaller file size to save disk space
  • Compatible with almost all applications
  • Without or with minimum formatting and/or unusual characters

How to Convert Word to Text?

Spire.Doc is a MS Word component which enables user to perform a wide range of Word document processing tasks directly, such as generate, read, write and modify Word document for .NET and Silverlight. It supports converting files from Word Doc to Text, HTML, PDF, XML, RTF, Docx, Dot, etc.

Download Spire.Doc (or Spire.Office) with .NET Framework 2.0 (or above) together and follow the simple code below to convert Word to Text.

Step 1: Create a project in Visual Studio. Add Spire.Doc DLL as reference.

Step 2: Use the following code to load local Word docfile which you want to convert to Txt file.

            Document document = new Document();
            document.LoadFromFile(@"D:WorkStephen2011.12.05Sample.doc");

Step 3: Save the word doc file as HTML by using the code below:

            document.SaveToFile("Sample.txt", FileFormat.Txt);

Step 4: Write the following full code into your project and press F5 to start it. Then, a Txt file will be automatically generated.

[C#]

using System;
using System.Windows.Forms;
using Spire.Doc;
using Spire.Doc.Documents;

namespace tohtml_3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Create word document
            Document document = new Document();
            document.LoadFromFile(@"D:WorkStephen2011.12.05Sample.doc");

            //Save doc file.
            document.SaveToFile("Sample.txt", FileFormat.Txt);

            //Launching the MS Word file.
            WordDocViewer("Sample.txt");
        }

        private void WordDocViewer(string fileName)
        {
            try
            {
                System.Diagnostics.Process.Start(fileName);
            }
            catch { }
        }

    }
}

[VB.NET]

Imports System
Imports System.Windows.Forms
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace tohtml_3
	Partial Public Class Form1
		Inherits Form
		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
			'Create word document
			Dim document As New Document()
			document.LoadFromFile("D:WorkStephen2011.12.05Sample.doc")

			'Save doc file.
			document.SaveToFile("Sample.txt", FileFormat.Txt)

			'Launching the MS Word file.
			WordDocViewer("Sample.txt")
		End Sub

		Private Sub WordDocViewer(ByVal fileName As String)
			Try
				System.Diagnostics.Process.Start(fileName)
			Catch
			End Try
		End Sub

	End Class
End Namespace

Effective Screenshot:

Word to Text

Если в документе много таблиц, и вы хотите преобразовать их в текст, как это сделать быстро? Это руководство покажет вам несколько сложных способов быстрого преобразования нескольких таблиц в текст в Word.

Преобразование таблиц в текст по одной

Преобразуйте все таблицы в текст с помощью VBA

Легко конвертировать несколько таблиц в текст с помощью Kutools


стрелка синий правый пузырь Преобразование таблиц в текст по одной

Office Word предоставляет функцию преобразования таблицы в обычный текст, но ее можно применять только к одной таблице за раз.

Удивительный! Используйте эффективные вкладки в Word (Office), например Chrome, Firefox и New Internet Explorer!

Подробнее Скачать бесплатно

Шаг 1: выберите или поместите курсор в таблицу, которую вы хотите преобразовать;

Шаг 2: перейдите к макет вкладка под Работа с таблицамии нажмите Преобразование в текст in Данные группа;

doc-таблицы-в-текст-1

Шаг 3: выберите стиль метки для разделения ячеек таблицы;

doc-таблицы-в-текст-2

Шаг 4: нажмите OK и Word преобразует таблицу в текст;

Шаг 5: повторяйте шаги с 1 по 4, пока все таблицы не будут преобразованы;


стрелка синий правый пузырь Преобразуйте все таблицы в текст с помощью VBA

VBA может преобразовывать все таблицы документа в текст.

Шаг 1. Нажмите «Alt-F11», Чтобы открыть окно Microsoft Visual Basic для приложения;

Шаг 2: нажмите Модули на Вставить вкладку, скопируйте и вставьте следующий код VBA в окно модуля;

Шаг 3: нажмите Run кнопку, чтобы применить VBA.

Код VBA для преобразования всех таблиц в текст:

ПодтаблицыToText ()
Размер таблицы как таблица
Для каждой таблицы в ActiveDocument.Tables
tbl.ConvertToText
Разделитель: = wdSeparateByTabs
Следующая таблица
Установить tbl = ничего
End Sub


стрелка синий правый пузырь Легко конвертировать несколько таблиц в текст с помощью Kutools

Преобразование нескольких таблиц в текст по одной занимает много времени, а код VBA всегда предоставляет единственный способ разделить все таблицы в документе. Kutools может легко преобразовать все таблицы из выделения или всего документа в обычный текст. И он использует тот же функциональный интерфейс, что и Word, чтобы предоставить пользователям различные способы разделения ячеек таблицы.

Kutools for Word, удобная надстройка, включает группы инструментов, облегчающих вашу работу и расширяющих ваши возможности обработки текстовых документов. Бесплатная пробная версия на 45 дней! Get It Now!

Нажмите Кутулс >> нажмите Таблица в текст in Настольные группы

doc-таблицы-в-текст-3

Для преобразования нескольких таблиц выделения или всего документа сначала выберите часть документа или весь документ, а затем примените утилиту, нажав Kutools >> Таблица в текст в таблице, и выберите разделитель для обычного текста после преобразования в диалоговое окно «Преобразовать таблицу в текст».

Для получения дополнительной информации, пожалуйста, посетите: преобразовать несколько таблиц в текст.



Рекомендуемые инструменты для повышения производительности Word

выстрел kutools word kutools tab 1180x121

выстрел kutools word kutools plus tab 1180x120

Kutools For Word — Более 100 расширенных функций для Word, сэкономьте 50% времени

  • Сложные и повторяющиеся операции можно производить разово за секунды.
  • Вставляйте сразу несколько изображений из папок в документ Word.
  • Объединяйте и объединяйте несколько файлов Word из папок в одну в желаемом порядке.
  • Разделите текущий документ на отдельные документы в соответствии с заголовком, разрывом раздела или другими критериями.
  • Преобразование файлов между Doc и Docx, Docx и PDF, набор инструментов для общих преобразований и выбора и т. Д.

Комментарии (11)


Оценок пока нет. Оцените первым!

Like this post? Please share to your friends:
  • Код для word 2019 коды активации
  • Код для word 2019 mso
  • Код для microsoft word 2019
  • Код для excel 365
  • Код для excel 2020