2013-01-10 100 views
0

我正在嘗試使用NetSuite的基於JavaScript的SuiteScript API爲電子郵件附件生成Excel文件。現在,我生成一個CSV文件沒有問題。這很容易。但是一個Excel文件就是要求的,而且我沒有任何問題,只有麻煩了。總是給我帶來麻煩的代碼行如下:在NetSuite的SuiteScript中創建Excel文件

var dataFile = nlapiCreateFile(dataFilename, "EXCEL", fileData); 

它總是導致腳本崩潰。到目前爲止,我已經嘗試過使用簡單的CSV樣式數據格式,而且我也嘗試將XML格式用於數據,但這兩種方法都不起作用。與此同時,我們只是推出一個CSV文件,並將它們轉換爲XLS,但如果有人知道NetSuite的功能足以提供幫助,將不勝感激。如果任何人想看到XML代碼的代碼,我可以補充一點。

編輯:下面是測試文件生成的XML樣本...

<?xml version="1.0"?> 
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"> 
    <ss:Worksheet ss:Name="Sheet1"> 
     <ss:Table> 
      <ss:Row> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Booth Number</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Company</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Address</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">City</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">State</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Zip</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Country</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Telephone</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Fax</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Contact Name</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Email</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Booth Length</ss:Data> 
       </ss:Cell> 
       <ss:Cell> 
        <ss:Data ss:Type="String">Booth Width</ss:Data> 
       </ss:Cell> 
      </ss:Row> 
     </ss:Table> 
    </ss:Worksheet> 
</ss:Workbook> 
+0

什麼是FILEDATA? netsuite文檔給出了關於二進制文件格式的混合信息。在一個地方,它說二進制內容必須是base-64編碼,而在另一個地方說「nlapiCreateFile函數不支持創建非文本文件類型」。 – Craig

回答

0

如果文件類型設置爲EXCEL比的base64它傳遞給nlapiCreateFile之前編碼數據

其他選項是提供純文本CSV數據並將其類型傳遞爲CSV。 CSV文件可以通過MS Excel的

2

打開試試這個:

var xlsFile = nlapiCreateFile('filename.xls', 'EXCEL', nlapiEncrypt(xmlString, 'base64')); 
xlsFile.setFolder(folderID); 

var fileID = nlapiSubmitFile(xlsFile); 
+0

謝謝!大部分都是這樣做的。對於遲到的迴應感到抱歉。我剛纔注意到有一個編輯。我現在唯一的問題是在Excel中打開生成的文件時,它彈出一個警告,聲明文件格式與擴展名指定的格式不同。我不知道數據格式與它有什麼關係,但是這裏有一個XML示例: –

+0

糟糕...沒關係。不能把它放在這裏。字符過多... –