在 Swift 中将 Docx 文件转换为文本

2 ms-word docx local-storage swift

我的临时存储中有一个 .docx 文件:

    let location: NSURL = NSURL.fileURLWithPath(NSTemporaryDirectory())
    let file_Name = location.URLByAppendingPathComponent("5 November 2016.docx")
Run Code Online (Sandbox Code Playgroud)

我现在要做的是提取此文档中的文本。但我似乎找不到任何转换器或这样做的方法。

我试过这个:

    let file_Content = try? NSString(contentsOfFile: String(file_Name), encoding: NSUTF8StringEncoding)
    print(file_Content)
Run Code Online (Sandbox Code Playgroud)

但是它打印零。

那么如何读取 docx 文件中的文本呢?

小智 5

Swift 4、Xcode 9.1、OSX 目标从 10.10 到 10.13

我发现以下代码可以轻松地从 Word .doc 文件中提取文本,然后轻松地将其转换为字符串。(属性字符串包含格式信息,可以解析为良好的效果。)我想传达的主要信息是关于使用 .docFormat 来指定文档类型的一些信息。

    let openPanel   = NSOpenPanel()
    var fileString  = String("")
    var fileData    = NSData()
    let fileURL     = openPanel.url

    do {
        fileData =  try NSData(contentsOf: fileURL!)
        if let tryForString = try? NSAttributedString(data: fileData as Data, options: [
            .documentType: NSAttributedString.DocumentType.docFormat,
            .characterEncoding: String.Encoding.utf8.rawValue
            ], documentAttributes: nil) {
            fileString = tryForString.string
        } else {
            fileString = "Data conversion error."
        }
        fileString = fileString.trimmingCharacters(in: .whitespacesAndNewlines)
    } catch {
        print("Word Document File Not Found")
    }
Run Code Online (Sandbox Code Playgroud)

  • 这对我使用 `NSAttributedString.DocumentType.officeOpenXML` 的 docx 文件有效 (3认同)
  • 这个答案是针对Mac的。我需要快速的ios。 (3认同)