1

C# コードの .docx ファイルから文字列などのデータを読み取りたい。いくつかの問題に目を通しましたが、どれを使用すればよいかわかりませんでした。

私は使用しようとしていますApplicationClass Application = new ApplicationClass();が、私はtを得ます

エラー:

タイプ 'Microsoft.Office.Interop.Word.ApplicationClass' にはコンストラクターが定義されていません

そして、分離された単語ではなく、docxファイルから全文を取得したい!

foreach (FileInfo f in docFiles)
{
    Application wo = new Application();
    object nullobj = Missing.Value;
    object file = f.FullName;
    Document doc = wo.Documents.Open(ref file, .... . . ref nullobj);
    doc.Activate();
    doc. == ??    
}

docx ファイルからテキスト全体を取得する方法を知りたいですか?

4

5 に答える 5

4

これは、docxファイルからテキスト全体を抽出したいものです!

    using (ZipFile zip = ZipFile.Read(filename))
{
    MemoryStream stream = new MemoryStream();
    zip.Extract(@"word/document.xml", stream);
    stream.Seek(0, SeekOrigin.Begin); 
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(stream);
    string PlainTextContent = xmldoc.DocumentElement.InnerText;
}
于 2012-06-12T07:18:04.680 に答える
0

楽しみ。

.Net Framework 4.5 を使用していることを確認してください。

using NUnit.Framework;
    [TestFixture]
    public class GetDocxInnerTextTestFixture
    {
        private string _inputFilepath = @"../../TestFixtures/TestFiles/input.docx";

        [Test]
        public void GetDocxInnerText()
        {
            string documentText = DocxInnerTextReader.GetDocxInnerText(_inputFilepath);

            Assert.IsNotNull(documentText);
            Assert.IsTrue(documentText.Length > 0);
        }
    }

using System.IO;
using System.IO.Compression;
using System.Xml;
    public static class DocxInnerTextReader
    {
        public static string GetDocxInnerText(string docxFilepath)
        {
            string folder = Path.GetDirectoryName(docxFilepath);
            string extractionFolder = folder + "\\extraction";

            if (Directory.Exists(extractionFolder))
                Directory.Delete(extractionFolder, true);

            ZipFile.ExtractToDirectory(docxFilepath, extractionFolder);
            string xmlFilepath = extractionFolder + "\\word\\document.xml";

            var xmldoc = new XmlDocument();
            xmldoc.Load(xmlFilepath);

            return xmldoc.DocumentElement.InnerText;
        }
    }
于 2013-03-15T17:14:09.937 に答える