2016-06-27 50 views
0

我使用了一個名爲「閱讀Aspose細胞」的產品,讓我從生成HTML Excel工作簿中通過的Aspose細胞導入。在HTML如何包括換行符

最近,我寫的代碼中使用的Aspose小區的大量表導出到Excel。我遇到了一個問題,即將換行符從我的單元格中刪除。

因此,HTML可能看起來像這樣在瀏覽器中:

Name | Address 
-----+-------------- 
Bob | 123 Main St, 
    | Miami, FL 
-----+-------------- 
Sue | 123 Broadway, 
    | New York NY 

但是,當通過閱讀Aspose細胞呈現,它看起來像這樣:

Name | Address 
-----+-------------- 
Bob | 123 Main St,Miami, FL 
-----+-------------- 
Sue | 123 Broadway,New York NY 

我已經試過了編碼這種幾種不同的方式。我試圖把街道和城市放在一個單元格內的不同div上,我嘗試在它們之間放置一個換行符標記,但Aspose Cells似乎由於某種原因而忽略了換行符。

如何讓我這個表呈現使用的Aspose細胞換行符?

更新:這裏的代碼片段將創建一個表是這樣的:

html = "<table><tr><td>Bob</td><td>123 Main St,<br />Miami, FL</td></tr><tr><td>Sue</td><td>123 Broadway,<br />New York, NY</td></tr></table>"; 

Aspose.Cells.License license = new Aspose.Cells.License(); 
license.SetLicense("Aspose.Total.lic"); 

var options = new HTMLLoadOptions(LoadFormat.Html);  
byte[] data = Encoding.UTF8.GetBytes(html); 
Workbook workbook; 
using (MemoryStream ms1 = new MemoryStream(data)) 
{ 
     workbook = new Workbook(ms1, options); 
} 
MemoryStream ms = new MemoryStream(); 
workbook.Save(ms, SaveFormat.Xlsx); 
ms.Seek(0, SeekOrigin.Begin); 
return ms; 
+1

你能分享你的代碼? – ManishChristian

+0

我注意到如果我在單元格內添加額外空間,它們會逐字呈現,但\ r \ n似乎完全被忽略。 –

+0

在HTML中,
標籤沒有結束標籤。 在XHTML中,
標籤必須正確關閉,這樣的:
。 W3Schools的。因此,從您的休息時間刪除結束標記,然後重試。 – cyboashu

回答

1

你應該嘗試的Aspose.Cells的API的最新版本/修復。我使用以下示例代碼(使用最新版本/修補程序(例如v8.8.2.10)添加/更新了幾行代碼段)來測試您的場景/案例,它可以正常工作,並且和預期的一樣。 例如 示例代碼:

string html = "<table><tbody><tr><td>Bob</td><td>123 Main St,<br>Miami, FL</td></tr><tr><td>Sue</td><td>123 Broadway,<br>New York, NY</td></tr></tbody></table>"; 

     LoadOptions options = new HTMLLoadOptions(LoadFormat.Html); 
     byte[] data = Encoding.UTF8.GetBytes(html); 
     Workbook workbook; 
     using (MemoryStream ms1 = new MemoryStream(data)) 
     { 
      workbook = new Workbook(ms1, options); 
     } 

     //Extend the width and Auto-fit second column 
     workbook.Worksheets[0].Cells.SetColumnWidth(1, 13); 
     workbook.Worksheets[0].AutoFitColumn(1); 


     //Saving&nbsp;the&nbsp;Excel&nbsp;file 
     MemoryStream ms = new MemoryStream(); 
     workbook.Save(ms, SaveFormat.Xlsx); 
     ms.Seek(0, SeekOrigin.Begin); 
     byte[] buffer = new byte[ms.Length]; 
     buffer = ms.ToArray(); 
     FileStream fs = new FileStream("e:\\test2\\outlinebreaks1.xlsx", FileMode.Create); 
     fs.Write(buffer, 0, buffer.Length); 
     fs.Close(); 
     ms.Close(); 

我作爲支持開發者/佈道者的Aspose

工作
+0

謝謝!我剛剛聽到企業支持的回覆,他告訴我完全一樣的東西。我認爲我們將不得不升級我們的許可證才能訪問此版本。 –