不知道在哪里问这个但是:
我想在Excel中创建一个宏来对服务器生成的日志进行排序和着色,并对它们进行颜色编码。我在每个文本文件中有3,000多行信息。
当我把它放到excel中时,它会混淆到一个单元格中,我希望能够按每个单元格排序
Request_path, count, Avg_bytes_sents, etc..
就像它在文本文档中的排序方式一样。我想使用marcos对它进行排序并制作数据透视表,但是当我将它粘贴到excel时,它看起来没什么问题而且没有组织。
无论如何要对它进行排序而不是实际复制每一行手动将其输入到Excel中吗?复制10k的日志执行需要永远......
答案 0 :(得分:2)
如果您有excel 2010或更新版本,只需使用内置的Text to Columns函数指定|作为分隔符?
https://www.extendoffice.com/documents/excel/1786-excel-split-text-by-space.html
或者,这样的事情应该有效:
Sub Import_Log_File()
Dim Tmp as String
Dim L as Integer, Cur_Row as Integer, Cur_Col as Integer
Tmp = Range("A1").Value
For L = 9 to Len(Tmp)
If Right(Left(Tmp,L),9) = "Detailed:" Then
Tmp = right(Tmp,Len(Tmp)-L)
Exit For
End If
Next L
L = 1
Cur_Row = 1
Cur_Col = 0
Do
If Right(Left(Tmp,L),1) = "|" or Right(Left(Tmp,L),1) ="+" Then
If Cur_Col <> 7 Then
Cur_Col = Cur_Col + 1
Else
Cur_Col = 0
Cur_Row = Cur_Row + 1
End If
Cells(Cur_Row,Cur_Col) = Left(Tmp, L - 1)
Tmp = Right(Tmp,Len(Tmp)-L)
L = 1
Else
L =L + 1
End If
While L < Len(Tmp)
End Sub
答案 1 :(得分:0)
我会编写一个脚本将此文本文件转换为csv,然后我会用Excel打开csv。
这个Python脚本会将每一行复制到csv中,因此您需要自己清理标题。
将文件名“serverlog.txt”更改为您要解析的文件。
output = open("output.csv", "w")
for line in open("serverlog.txt"):
parts = (s.strip() for s in line.split("|"))
output.write(",".join(parts[1:-1]))
答案 2 :(得分:0)
使用Power Query,根本不需要任何编码。无论数据行数是多少,都可以一次导入多个文件