我有一个JavaScript程序,可以将HTML数据表导出为CSV。
此数据经过UTF-8编码,因此可以包含多种字符集(英语,法语,阿拉伯语,日语...)。
数据表中特定单元格的内容通常包含换行符
在写入文件之前,我将以下函数应用于每个表单元格的内容
function OutputFilter (Text)
{
Text = Text.replace (/<br>/g , "\n"); // replace line breaks with new line
from = new RegExp ("<[^>]+>","g"); // replace any remaining HTML tags
to = "" ;
Text = Text.replace (from,to);
Text = Text.replace (/"/g, '"' ); // unescape all double quotes
Text = Text.replace (/'/g, "'" ); // unescape all single quotes
Text = Text.replace (/</g , "<" ); // unescape all <
Text = Text.replace (/>/g , ">" ); // unescape all >
Text = Text.replace (/&/g , "&" ); // unescape all ampersands
var allQuotes = new RegExp ('"',"g"); //Text = Text.replace (/"/g, '""');
var twoQuotes = '""' ;
Text = Text.replace (allQuotes, twoQuotes); // duplicate all double quotes
var commaInText = Text.indexOf ("," ) != -1;
var quoteInText = Text.indexOf ('"' ) != -1;
var newlineInText = Text.indexOf ("\n") != -1;
var commasRequired = commaInText || quoteInText || newlineInText ;
if (commasRequired) {return '"' + Text + '"' } else {return Text};
};
现在,我非常确定我正朝着正确的方向前进,因为Mac Numbers正确读取了输出CSV(或者我认为应该读取它们)。
Excel for Mac的行为不同,如下所示
我很高兴只使用MacOS Numbers,但由于有一半以上的人使用Excel,我希望能够生成在Excel中可用的CSV文件。
感谢所有帮助 谢谢