优化解析文本文件,然后上传到 Excel

Optimized parse text file, to then upload to Excel

我的项目是获取大量日志,输出到文本文件中,并解析一些数据以制成Excel格式。

中间有很多不需要的垃圾数据

其中一部分是这样的:

2018-05-17 07:16:57.105>>>>>>
{"status":"success", "statusCode":"0", "statusDesc":"Message Processed Sucessfully", "messageNumber":"451", "payload":{"messageCode":"SORTRESPONSE","Id":"5L","Id":"28032","messageTimestamp":"2018-05-16 23:16:55"}}

我首先需要在“{}”之前获取时间戳 因为它不同于 messageTimestamp

生成 excel 工作簿时 这是 Excel:

中的样子
------A-----------------------------------B--------------C

1. Overall time stamp ---------- status------- statusCode 

2. 2018-05-17 07:16:57.105   - success --- -0

等等...

有效负载在其“{}”中有自己的日志部分

因此它在 excel 中的部分将如下所示:

  F

1. payload
2. {"messageCode":"SORTRESPONSE","Id":"5L","Id":"28032","messageTimestamp":"2018-05-16 23:16:55"}

它的内容可以放在一个部分中,这不是问题。

我的一个朋友做过类似的事情,但即使是生成一个相对较小的 excel 文档也可能需要几分钟的时间

我的问题:

解析所需数据然后将其存储在数组或多维数组中的最佳方法是什么

然后将其推送到 excel 文档中。

我会尝试用换行符拆分输入文本,然后用 Newtonsoft.Json 解析 JSON 部分。

我强烈建议不要尝试自己解析 JSON。这里的瓶颈是磁盘 IO 而不是内存处理,因此可以轻松编写正确的代码并使用 3rd 方库。

获得表示输入的结构化数据后,您可以将每个条目写入仅包含所需字段的输出文件。

对于 Excel 文件,CSV 可以吗?还是需要 XLSX 文件?对于 CSV,您可以直接写入文件,对于 XLSX,我建议使用 EPPlus 库。

https://www.newtonsoft.com/json

https://archive.codeplex.com/?p=epplus