将Excel文件拆分为指定记录的Chink,并为列数据组添加帐户

时间:2018-08-14 22:56:30

标签: javascript node.js

在满足以下条件的情况下,我需要一个大Excel工作表作为NodeJs程序的输入,并且

  

1#-我必须在小于等于60K的每条记录上进行拆分。

     

2#-B列有发票编号,可以重复。在同一期间   拆分的发票号不应撒到下一个拆分表中。

在下面给出的示例中,GH26025不能成为下一张纸的一部分。

如何在JavaScript中实现它。我需要这种基于发票的拆分逻辑,并确保计数不超过60K(或者可以有更多计数或倒计数,哪怕那么简单,我都具有灵活性)。

i 可以考虑的一种方法是-当您在计数器中计数60K时,检查下一个记录是否与我们的第60K条记录不同,如果我们目前还不行,那么直到下一个记录为止记录完成或反向方式。

**Split#1**
14-Jul-2018     GH26023
14-Jul-2018     GH26024
14-Jul-2018     GH26024
14-Jul-2018     GH26024
14-Jul-2018     GH26025
14-Jul-2018     GH26025
14-Jul-2018     GH26025
14-Jul-2018     GH260**25**

**Split 2**
14-Jul-2018     GH26026
14-Jul-2018     GH26026
14-Jul-2018     GH26027
15-Jul-2018     GH26027
15-Jul-2018     GH260**28**

1 个答案:

答案 0 :(得分:0)

在声明了一些必需的变量(例如StartPosition,Boundary,Limit等)之后,我通过以下伪步骤获得了结果:

  • 计算给定excel的总行数
  • 为要允许在块中处理的限制定义变量
  • 检查是否limit.INVOICE_NO == limit-1.INVOICE_NO
  • 如果是
  • 循环播放,直到获得相同的INVOICE NO(INVOICE_NO不匹配)记录该位置
  • 将数组从开始切到不匹配的位置
  • 如果否
  • 移至下一个数字并在上方重复以切片数组
  • 将起始pos变量设置为边界变量
  • 所有切片数组将存储在一个数组中
  • 写入单独的文件

效果很好。谢谢!