将Excel逗号分隔的单元格转换为包含B列值的行

时间:2016-08-11 09:23:17

标签: excel rows comma

我们需要转换以下内容(实际上有218,000行):

keyword              businessId

here,are,keywords    459
more,keywords        460

进入下面的示例:

keyword              businessId

here                 459
are                  459
keywords             459
more                 460
keywords             460

等。等数据为218,000行。

我知道这最终会转变为大约3,600,000行,但我们需要这样做;无论是在一个脚本中还是在块中完成。帮助

1 个答案:

答案 0 :(得分:0)

Excel可能会因为限制超过1M行而失败。因此,要么表单需要拆分成更小的块,每张一块,以防止这种情况,或者考虑用您选择的语言编写一个简短的脚本,将输入流式传输到新的csv中。 C#'ey代码如下:

while(!eof)
{
    string line = inFile.readline();
    //assumes tab delimited between keyword/business id, but can be reworked for comma delimited
    string[] lineParts = line.split('\t');
    string[] keywords = lineParts.split(',');
    int busId = Integer.Parseint(lineParts[1]);
    for(string keyword : keywords)
    {
        outFile.writeLine(keyword + "," + busId);
    }
}

或类似的东西 - 在解析错误的情况下可能需要一些尝试/捕获。