2014-07-09 196 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下载免费试用版并测试您所需的功能 –

相关问题