2

記入しなければならない Excel ワークシートが渡されたので、JExcel を使用して記入しています。ただし、JExcel を使用して 1 つのセルだけを入力すると機能しますが、すべてが遅れる不要な警告が大量に表示されます (Excel ファイルに含まれるすべてのメタデータが原因であると想定しています)。メタデータを削除せずにこれらの警告を回避する方法を知っている人はいますか? (相手側で入力された Excel ワークシートを解析することが重要であると想定しているため、メタデータを保持する必要があります)

あなたの助けは大歓迎です!

public static void main(String args[]){
    Workbook workbook;
    try{
        workbook = Workbook.getWorkbook(new File("Test.xls"));
        WritableWorkbook copy = Workbook.createWorkbook(new File("output.xls"), workbook);
        WritableSheet sheet1 = copy.getSheet(0); 
        Label label = new Label(4,5, "PO1234355");
        sheet1.addCell(label);


        copy.write(); 
        copy.close();

    }
    catch(Exception e){
        System.out.println("Could not get workbook. Error: " + e.toString());
    }
}

これらは私が得る非常識な警告です:

Warning:  Cannot read name ranges for BUY - setting to empty
Warning:  Cannot read name ranges for Buyer - setting to empty
Warning:  Cannot read name ranges for Casual_Buyer - setting to empty
Warning:  Cannot read name ranges for Departments - setting to empty
Warning:  Cannot read name ranges for Dept_No - setting to empty
Warning:  Cannot read name ranges for Designer - setting to empty
Warning:  Cannot read name ranges for Model - setting to empty
Warning:  Cannot read name ranges for Seasons - setting to empty
Warning:  Cannot read name ranges for Supplier - setting to empty
Warning:  Cannot read name ranges for Technologist - setting to empty
Warning:  Cannot read name ranges for Typed_by - setting to empty
Warning:  Cannot read name ranges for YESNO - setting to empty
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
Warning:  no filename property for drawing
4

3 に答える 3

1

私のファイルには名前付き範囲がありませんでしたが、それでもその警告がありました。そこで、 WorkbookSettings でコンストラクターを使用してワークブックを取得しようとしました。それは私を助けました。

WorkbookSettings ws = new WorkbookSettings();
ws.setSuppressWarnings(true);
Workbook workbook = Workbook.getWorkbook(new File("Stock labels.xls"), ws);
于 2016-12-27T14:52:39.987 に答える
1

このコードは、あるワークブックのワークシートを別のワークブックの新しいワークシートにコピーして、このような警告を回避するものと考えることができます。またWorkBookSettings、これらの警告を回避するのに役立つ jxl での使用方法も確認してください。

for (int i = 0 ; i < numrows ; i++)
  {
    for (int j = 0 ; j < numcols ; j++)
    {
      readCell = sheet.getCell(i, j);
      newCell = readCell.copyTo(i, j);
      readFormat = readCell.getCellFormat();
      newFormat = new WritableCellFormat(readFormat);
      newCell.setCellFormat(newFormat);
      newSheet.add(newCell);
    }
  }

これがその警告のソースコードです

String n = name != null ? name : builtInName.getName();
logger.warn("Cannot read name ranges for " + n + 
                  " - setting to empty");
NameRange range = new NameRange(0,0,0,0,0);
ranges.add(range);

警告の理由を分析できることを願っています。

于 2012-12-31T16:45:19.737 に答える
1

私も同じ警告を受けました。Excel ですべての名前付き範囲を削除しました (式 > 名前マネージャー)。その後、すべての警告がなくなりました。

于 2014-09-05T21:58:34.893 に答える