2014-07-09 243 views
0

我想將Excel格式化的值顯示在Excel單元格中。 html標籤包含無序,有序和子彈,斜體和下劃線以及段落。使用Apache POI將HTML格式化的單元格值轉換爲Excel 1

我想將html標記標記傳遞給顯示apache poi excel的單元格值的格式化值。

XSSFWorkbook workBook = null; 
String value = "<html>My String</html>"; 
workBook = new XSSFWorkbook(); 
XSSFCell cell = row.createCell(columnIndex); 
XSSFRichTextString textString = new XSSFRichTextString (value); 
cell.setCellValue(value); 

輸入數據:

<ul> 
    <li> Iam <strong>Bold </strong> and Iam <u>Underlined </u> </li> 
    <li> Just a Normal Text </li> 
    <li> Iam <b> Bold </b> <em>and italic </em> <u> and underlined </u> </li> 
    </ul> 

預期輸出:

Iam Bold and Iam 斜體
Iam Bold and Iam 斜體和加下劃線
只是一個正常的文本

任何api規定,Aspose或Itext或其他一些API。

+0

可能重複([Apache的POI的Excel文本通過XSSFRichTexString和Jsoup格式化] http://stackoverflow.com/questions/24613916/apache-poi-excel-text-formatting-through-xssfrichtexstring-and-jsoup ) – Mirco

回答

0

您可以通過創建和設置XSSFFont來格式化興趣點中的字符串。 https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html 在那裏你可以使用setBold(true)等等。

你只需要將字體應用到你的XSSFRichTextString。您也可以將字體應用到字符串的一部分。

XSSFWorkbook wb=new XSSFWorkbook(); 
XSSFFont font = wb.createFont(); 
font.setBold(true); 
font.setItalic(true); 
new XSSFRichTextString().applyFont(font); 

字符串中使用HTML似乎是不可能

+0

沒有詳細..在一個總文本中,一個潛臺詞可以包含粗體,其他部分可以包含斜體,..underline等... html標籤看起來就像這樣,plz看到更新的問題 – LazyGuy

+0

那麼最新?這將使您的整個文本字符串變粗體和斜體。列表等似乎不可能與POI – Mirco

+0

我不是在尋找整個文本是粗體和斜體..部分的字符串和這個變化和裏面李項目。如何將它傳遞給XSSFRichTextString的applyFont(startIndex,endIndex,font)方法,而無需知道文本在粗體和斜體或帶下劃線或兩者或多個位置的確切索引。標籤可以變化..所以這是問題。如果是完整文本,我們可以做到。 – LazyGuy

0

我作爲社會媒體的開發工作,在閱讀Aspose和你期望的結果可以使用的Aspose.Cells爲Java輕鬆實現。看看下面的代碼。

//Instantiate the workbook object                  
Workbook workbook = new Workbook();                  

//Get first worksheet of workbook                  
Worksheet worksheet1 = workbook.getWorksheets().get(0);             

//Get Cells in a Worksheet                    
Cells cells = worksheet1.getCells();                  

//Get the individual cell                    
Cell cell = cells.get("A1");                    

String htmlstring = "<ul><li> I am <strong>Bold </strong> and Iam <u>Underlined </u> " +     
     "</li><li> Just a Normal Text </li>" +               
"<li> Iam <b> Bold </b> <i>and italic </i> <u> and underlined </u></li></ul>";       

//Setting Cell Style                      
Style style = new Style();                    
style.setHorizontalAlignment(TextAlignmentType.LEFT);             
style.setTextWrapped(true);                    
cell.setStyle(style);                     

//Set HTML string as Cell Text                   
cell.setHtmlString(htmlstring);                   

worksheet1.autoFitColumns();                    
worksheet1.autoFitRows();                    

//Save the workbook.                      
workbook.save("c:\\HtmlStringtest.xlsx");               
+0

Okie ..我怎樣才能得到Java的Aspose.cells。這是一個許可或開源。如果它在獲得許可之前獲得許可,我想測試上面的代碼是否適用於我的要求。因此,爲了測試目的,我如何獲得aspose.cells。我可以購買aspose.cells jar來測試purpsose – LazyGuy

+0

Aspose.Cells for Java是經過授權的API。您可以使用鏈接http://goo.gl/Hhrwkd下載免費試用版並測試您所需的功能 –

相關問題