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

时间:2018-05-18 16:09:19

标签: c# excel text-files text-parsing string-parsing

我的项目是获取大量日志,在文本文件中输出并解析一些要制作成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文档。

1 个答案:

答案 0 :(得分:0)

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

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

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

对于Excel文件,CSV是否可以,还是需要XLSX文件?对于CSV,您可以直接写入文件,对于XLSX,我会推荐EPPlus库。

https://www.newtonsoft.com/json

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