我有微软的文件,我们想要转移到excel。每个句子都需要分开,然后粘贴到excel中的下一个合适的单元格中。这些句子也需要作为标题、要求或信息进行分析。我将重现典型的单词格式。
2.3.4 Lightening Transient Response
The device shall meet spec 24532. Voltage must resemble figure.
Figure 1.这意味着
<numbering> <Heading>
<Requirements/information>在excel中,这几乎就是我想要查看的文档,除了第二个要求句应该排在前面的需求句的后面。
2.3.4 | Lightening Transient Response | Heading
| The device shall meet spec 24532. | Requirement
|Voltage must resemble figure | Requirement
|figure 1 | Informational我在python中使用openxl和docx模块尝试了这个项目。我有代码可以进入单词,得到句子,然后代码可以分析句子,我正在从段落中检索运行。我有问题,因为不是所有的句子回来是因为文字文件是如何格式化的。我通常只会把标题拿回来。标题号不存储在运行中。标题下的需求存储在表中。我编写了一些代码来进入表格,从单元格中提取文本,因此这是获得需求的一种方法,但是代码片段会产生问题(连续三次给我相同的句子)。
我在寻找其他可能的方法来做这件事。我在想一个格式转换。已经提到了XML,然后也可以使用pdf和pythons模块。
如有任何意见或建议,将不胜感激。
-Chris
发布于 2017-02-06 18:24:04
XML将变得更难,而不是更容易。你比你想象的要近。我建议分别解决每个问题,直到你解决为止。
表中的句子三次出现问题是因为合并了单元格。python在表上的工作方式是由x行和y列组成的底层表布局。如果并排合并两个单元格,则这两个单元格的结果相同。您可以检测到这是比较这两个单元格是否相等。大致类似于“如果this_cell == last_cell跳过这个单元格”。
没有办法解决航向问题。标题数字只存在于正在运行的Word实例中;它们是在显示(或打印)时生成的。要获得这些数据,您需要使用相同的规则来生成自己的数字。因此,您需要跟踪您所通过的标题的数量等,并形成您自己的点分隔编号。
发布于 2017-02-28 22:19:04
你为什么要用Python来做这个?只需使用VBA,因为您正在使用Excel和Word。
像这样的事情应该能让你离你想去的地方很近。可能需要调整一下..。
Sub Demo()
Dim wdApp As Word.Application
Set wdApp = Word.Application
Dim wdDoc As Word.Document
Set wdDoc = wdApp.ActiveDocument
wdDoc.Range.Copy
ActiveSheet.Paste Destination:=ActiveSheet.Range("A1")
With ActiveSheet
.Paste Destination:=Range("A" & .Cells.SpecialCells(xlCellTypeLastCell).Row + 1)
End With
Set myRange = Range("A1:A100")
For i = 1 To myRange.Rows.Count
If InStr(myRange.Cells(i, "A").Value, "Voltage") > 0 Then
myRange.Cells(i, "A").Offset(1, 0).Select
ActiveCell.EntireRow.Insert
ActiveCell.Offset(-1, 0).Select
If InStr(myRange.Cells(i, "A").Value, "Voltage") > 0 Then
position1 = InStr(1, ActiveCell.Value, "Voltage")
myRange.Cells(i + 1, "A").Value = Mid(ActiveCell.Value, position1, 99)
ActiveCell.Value = Left(ActiveCell.Value, position1 - 2)
i = i + 2
End If
End If
Next i
End Sub所以,从Word文档中复制文本,它应该是开放的和活动的,这样就可以了。还有其他方法可以做到这一点。
https://stackoverflow.com/questions/42073149
复制相似问题