2012-04-23 5 views
1

私は、以下に示すコードを使用して、jtable内のいくつかのセルをストライクします。 JTable.print()メソッドを使用してAppearenceとPrintの両方で優れた動作をします。JTableの値をExcelに渡す(テキストの整形)

public void strikeThrough() 
{ 
    int rows=jTable.getRowCount(); 
    destroiedDocs=new ArrayList<>(); 
    for (int i = 0; i < rows; i++)  
    { 
     String test=String.valueOf(jTable.getValueAt(i,5)); 
     if (test.equals("K")) 
     { 
      for (int j = 1; j < 5; j++) 
      { 
      String tostrike= String.valueOf(jTable.getValueAt(i, j)); 
      String striked=("<html><strike>".concat(tostrike).concat("</strike>  </html>")); 
      jTable.setValueAt(striked, i, j); 
      destroiedDocs.add(i); 
      } 
     } 
    } 
} 

問題は、私はJXLクラスに優れてresaultsをエクスポートするとき、私はappearence

<html><strike>some text</strike></html> 

の代わり いくつかのテキスト取り消し線で で細胞を介してこれらのストライキの値を得たことです。 このフォーマット化の問題を解決する方法についてのご意見はありますか? ループを持つjtableのセルによって、Excelセルのセルを渡します。 ありがとうございました!

答えて

1

JAVAコード:

String striked=("<html><strike>".concat(tostrike).concat("</strike>  </html>")); 
jTable.setValueAt(striked, i, j); 

はJAVA UIのためにのみ機能します。データをエクスポートした後、元のテキストが表示されます。
次の手順を実行する必要があります。
1.エクスポートする前に、<html><strike></strike></html>を削除します。元のテキストを保持します。
2.次のコードを使用して、細胞を取り消します。

import java.io.File; 
import jxl.Workbook; 
import jxl.write.Label; 
import jxl.write.WritableCell; 
import jxl.write.WritableCellFormat; 
import jxl.write.WritableFont; 
import jxl.write.WritableSheet; 
import jxl.write.WritableWorkbook; 

public class ExcelCreate { 

    public static void main(String[] args) { 
    try { 

     WritableWorkbook workbook = 
     Workbook.createWorkbook(new File("output.xls")); 
     WritableSheet sheet = workbook.createSheet("Page1", 0); 

     String Label[] = new String[4]; 
     Label[0] = "Emp ID"; 
     Label[1] = "Name"; 
     Label[2] = "Department"; 
     Label[3] = "Designation"; 

     WritableCellFormat cellFormat = new WritableCellFormat(); 
     WritableFont font = new WritableFont(WritableFont.ARIAL); 
     font.setStruckout(true); 
     cellFormat.setFont(font); 

     for (int i = 0; i < Label.length; i++) { 
      Label label = new Label(i, 0, Label[i]); 
      sheet.addCell(label); 
      WritableCell cell = sheet.getWritableCell(i, 0); 
      cell.setCellFormat(cellFormat); 
     } 

     workbook.write(); 
     workbook.close(); 

    } catch (Exception e) { 
     /* Write your logic to handle exception. 
     */ 
    } 
    } 
} 
0

私は、どのAPI

...輸出前に、Excelに各セルはあなたが必要な書式設定を追加するために、適切な機能を持つ

<html> 
    and 
<strike> 

ようなタグを見つけ、交換または削除する必要がありますだと思いますそれをExcel形式にエクスポートするのに使用しますか? Excelにエクスポートするために使用しているものに固有のものだと思います。

+0

jxl-2.6.10.jarが、私はそれにresaultsをエクスポートするJXLライブラリを使用して使用して、次のコードを実行します。 – Vagelism

+0

はい。これは簡単な部分のようです。私はそれが必要なので、このストライキをExcelに渡すのはどうですか!ありがとう! – Vagelism

関連する問題