1

jtableのいくつかのセルを打ち消すために、以下に示すコードを使用します。私にとってはうまく機能し、JTable.print()メソッドを使用した外観と印刷の両方で優れた機能を発揮します。

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クラスで優れているように結果をエクスポートすると、これらの取り消し線の値が表示されたセルを介して取得されたことです。

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

取り消し線のテキストの代わりに。このフォーマットの問題を解決する方法に関する推奨事項はありますか?ループを使用して、jtableからセルごとにExcelセル内のセルを渡します。ありがとうございました!

4

2 に答える 2

1

JAVA コード:

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

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

を使用して次のコードを実行しますjxl-2.6.10.jar

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. 
         */
    }
  }
}
于 2012-04-26T06:20:11.517 に答える
0

各セルをExcelにエクスポートする前に、次のようなタグを見つけて置換または削除する必要があると思います

<html> 
    and
<strike>

必要なフォーマットを追加するための適切な関数を使用して..

Excel形式にエクスポートするためにどのAPIを使用していますか?? Excelへのエクスポートに使用している特定のものになると思います。

于 2012-04-26T04:21:41.710 に答える