在excel列上应用regex后创建以逗号分隔的文本

时间:2014-10-23 07:22:21

标签: javascript php regex excel csv

我有一个Excel列,我需要将其转换为CSV。我已经获得了一个javascript正则表达式来应用列值:

var regex = new RegExp("[^a-z0-9',.]+","gi");
return input.replace(regex, "_").replace(/_+/g, "_").replace(/^_|_$|^\/|\/$|'|,/g, "");

如何将excel列转换为javascript数组,以便我可以遍历数组值并应用正则表达式再次将其保存到数组中,然后从数组中创建一个csv。

我的Excel中只有一列。有任何建议或最佳解决方法吗?我可以使用PHP或C#,但我不知道如何将这个javascript正则表达式转换为php或c#。或者至少有一个人告诉我什么应该是解决这个问题的最佳解决方案。

这是我的Excel工作表中的示例数据我有一列str name,它的值如下:

strName
ABC
Nike & Sony etc
THE METEORS

1 个答案:

答案 0 :(得分:0)

没有必要将任何内容转换为Javascript,因为有一个内置函数可以在PHP中创建CSV:fputcsv。它将一个数组作为输入,并以逗号分隔的数据将其打印到输出文件,最后带有回车符。

您的数据似乎是一个行数组,因此您需要将每一行转换为数组,以便与fputcsv一起使用。

# input data
$lines = array(
    'strName',
    'ABC',
    'Nike & Sony etc',
    'THE METEORS');

# open the output file
$fh = fopen('file.csv', 'w');

foreach ($lines as $l) {
    # convert the line to an array and pass it to fputcsv
    fputcsv($fh, array($l));
}
fclose($fh);

file.csv现在包含:

strName
ABC
"Nike & Sony etc"
"THE METEORS"