0
因此,我試圖從Google Spreadsheet中取出工作表並將其另存爲.CSV文件,就像您手動執行的操作一樣。它工作得相當好,但我遇到了一個新行/換行/回車等問題。我已經使用並修改了Google's solution以及一些滿足我目前需求的堆棧溢出資源,但是我一直在這個新的問題。通過google腳本以CSV格式保存處理換行符
問題:
的原因:
我會注意到,如果我手動保存從谷歌電子表格它看起來很好的CSV文件,但你在事業上的圖片看到,盒子這個問題我無法解決。
我當前的代碼:
function convertRangeToCsvFile_(csvFileName, sheet) {
// get available data range in the spreadsheet
var activeRange = sheet.getDataRange();
try {
var data = activeRange.getValues();
var csvFile = undefined;
// loop through the data in the range and build a string with the csv data
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
//Handle special characters
var text = data[row][col].toString();
text = text.replace(/(\r\n|\n|\r)/g," ");
for(var i = 0; i < text.length; i++)
{
if(text[i] == "\'" || text[i] == "\"" || text[i] == "\\" || text[i] == "\n" || text[i] == "\r" || text[i] == "\t" || text[i] == "\b" || text[i] == "\f")
{
text = spliceSlice(text,i,0,"\\");
i++;
}
}
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + text + "\""; //Puts quotes around the data for strings.
}
}
// join each row's columns
// add a carriage return to end of each row, except for the last one
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
}
csvFile = csv;
return csvFile;
}
catch(err) {
Logger.log(err);
}
}
正如你可以看到我試圖以應對新的線,我看過關於「正則表達式」然而,他們似乎並不實際做任何事爲了我。所以也許我只是用錯了,然後它會起作用,或者我需要以不同的方式去做。
編輯:我看過記事本+ +中的文件,並確定它們是導致在行中間問題的LF字符。在行\ r \ n結束的地方工作的很好。
我試圖用這個,而我仍然有同樣的問題。 – 2015-03-20 05:49:36
經過這一番修改後,它結束了工作。說實話,我不知道你的開關是否是造成它的原因,但我沒有做任何明顯的改變。 – 2015-04-07 17:19:51