2017-03-14 87 views
1

我正在開發一個項目,但遇到了一個重大的障礙,我希望有人有答案。否則,我必須採取一種長期的方式。將Char(10)從單元格值導入Google表格電子郵件

我有與含有一個回車一個簡單公式的單元格:

= 「良好」 & CHAR(10)& 「早晨」

細胞的結果如下所示:

「好

晨報」

如果我運行一個簡單的電子郵件的腳本帶來的單元格的值,它剔除了從細胞值CHAR(10),並返回以下代替:

「早上好」

有沒有辦法留住包括CHAR(10)單元格的值?

我與一個消息框嘗試過了,它仍然除去焦炭(10),並給出了結果:

「早安」

VS的所期望的結果:

「好

晨報」使用

消息框&電子郵件腳本:

function ShowCellValue(){ 
var OriginalString = SpreadsheetApp.getActive().getRange("E2").getValue(); 
var NewString = OriginalString.replace(/\n/g, '\\n') 
Browser.msgBox(NewString); 
} 

function SendEmail(){ 
var subject = "Subject Goes Here"; 
var OriginalString = SpreadsheetApp.getActive().getRange("E2").getValue(); 
var NewString = OriginalString.replace(/\n/g, '<br>') 
var recipients = "[email protected]"; 

var message = "<HTML><BODY><font size=4>" 
    + "<P>" + "" 
    + "<BR>" + "Here is the value of cell E2: " 
    + "<BR>" + "" 
    + "<BR>" + "" 
    + "<BR>" + NewString 
    + "<BR>" + "" 
    + "<BR>" + "" 
    + "</HTML></BODY>"; 
MailApp.sendEmail(recipients, subject, "", {htmlBody: message}); 
} 
+1

你可以試試這個,而不是CHAR(10)。 =「好」和「\ n」和「早上」。這會在表格中給你一個醜陋的輸出,但是應該給你所需的Browser.msgBox,希望你的電子郵件。 –

+0

謝謝您的評論。不幸的是,它實際上在電子郵件正文中引入了「\ n」。 –

回答

2

linebreak不會丟失。它只被Browser.msgBox方法所壓制,它用空格代替它。比較以下內容:

var str = SpreadsheetApp.getActive().getRange("E2").getValue(); 
Browser.msgBox(str); // no linebreak shown 
Logger.log(str);  // linebreak shown 

記錄一個字符串是一種更好的方式來查看它比將它扔到msgBox中是什麼。

您應該直接測試電子郵件輸出;不要認爲這將是你在msgBox中看到的。

如果目標是爲了顯示與MSGBOX換行符文本,可以通過編碼換行來完成爲\\n字符串:

Browser.msgBox(str.replace(/\n/g, '\\n')); 

(這也可能是電子郵件的幫助,但我不知道有關;依賴於電子郵件格式)

對於HTML格式的電子郵件使用,

str.replace(/\n/g, '<br>') 
+0

正常, 這對消息框非常有用。非常感謝! 我試着用HMTL電子郵件使用它,但它仍然將它們全部組合在一起。你知道電子郵件腳本中是否有解決方法嗎? –

+0

更新:使用日誌技巧,日誌顯示它應該正確發送電子郵件,但事實並非如此。我嘗試在這裏粘貼我的電子郵件腳本,但它限制了我的角色。 –

+0

進行以下更改並嘗試str.replace(/ \ n/g,'
')。基本上只是介紹一個html標籤 –

相關問題