Whatsapp .txt文件聊天成原始whatsapp格式

时间:2016-03-29 17:55:35

标签: ms-word word-vba

我有.txt文件格式的whatsapp聊天。我希望它转换为原始的whatsapp格式(即whatsapp原始界面)。 输入为.txt文件

示例:

12/11/2014, 12:22 PM - John: Hi Stacy
12/11/2014, 12:22 PM - John: :)
13/11/2014, 2:59 AM - John: How are you?
13/11/2014, 2:59 AM - John: Are u home?
13/11/2014, 8:09 AM - Stacy: Hi John
13/11/2014, 8:10 AM - Stacy: yeah I am good
13/11/2014, 8:10 AM - Stacy: and home too
13/11/2014, 9:14 PM - John: ok
16/11/2014, 4:14 PM - Stacy: how are you?
16/11/2014, 4:16 PM - John: I am good too
16/11/2014, 4:16 PM - John: See u tmrw at work
16/11/2014, 4:16 PM - John: :)
16/11/2014, 4:24 PM - Stacy: yeah ok

现在,我希望Word文档中的输出具有与whatsapp类似的界面。

[即约翰在左侧和Stacy在右侧的所有聊天]

我尝试将此.txt文件导入excel,然后在word中进行编辑。但那没用。

必需的输出格式:

Please click here to view the required output word format (它与whatsapp格式非常相似)

这就是我所做的:

1)我从.txt文件中导入了excel中的数据。

2)我使用python代码将该txt格式转换为excel文件 Please click here to view that file

3)然后我将其复制到.doc文件并添加了边框

4)现在我删除了输出边框。这就是我在第一个链接中获得格式的方式。

我面临的问题是文本不存在的地方,我需要手动去那个单元格并选择“No Border”。我有1000个这些。

无论如何我可以通过编程方式执行此操作吗?

可以使用Word或Excel VBA完成某些事情吗?

1 个答案:

答案 0 :(得分:0)

如果您已经拥有如图所示的表格,那么您可以删除所有边界并运行以下代码。

Sub demo1()
With ActiveDocument.Range
Dim oCell As Cell
Dim oRow As Row
'remove all boarders before executing this code
    For Each oRow In .Tables(1).Rows
        For Each oCell In oRow.Cells
            If Not oCell.Range.Text = Chr(13) & Chr(7) Then
                Set rng = oCell.Range
                With rng
                    With .Borders(wdBorderTop)
                        .LineStyle = Options.DefaultBorderLineStyle
                        .LineWidth = Options.DefaultBorderLineWidth
                        .Color = Options.DefaultBorderColor
                    End With
                    With .Borders(wdBorderLeft)
                        .LineStyle = Options.DefaultBorderLineStyle
                        .LineWidth = Options.DefaultBorderLineWidth
                        .Color = Options.DefaultBorderColor
                    End With
                    With .Borders(wdBorderBottom)
                        .LineStyle = Options.DefaultBorderLineStyle
                        .LineWidth = Options.DefaultBorderLineWidth
                        .Color = Options.DefaultBorderColor
                    End With
                    With .Borders(wdBorderRight)
                        .LineStyle = Options.DefaultBorderLineStyle
                        .LineWidth = Options.DefaultBorderLineWidth
                        .Color = Options.DefaultBorderColor
                    End With
                End With
            End If
        Next oCell
    Next oRow
End With
End Sub