我的项目是获取大量日志,在文本文件中输出并解析一些要制作成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"}}
我首先需要在“{}”之前取时间戳,因为它与消息Timestamp不同
生成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而不是内存处理,因此可以轻松编写正确的代码并使用第三方库。
一旦您有表示输入的结构化数据,您就可以将每个条目写入输出文件,只包含您需要的字段。
对于Excel文件,CSV是否正常或您是否需要XLSX文件?对于CSV,您可以直接写入文件,对于XLSX,我会推荐EPPlus库。