gpt4 book ai didi

java - 无法使用 JXL 写入 Excel 文档 ("Sheet name too long - truncating")

转载 作者:行者123 更新时间:2023-12-01 11:52:54 25 4
gpt4 key购买 nike

我想编写 Excel 工作表,为此我编写了一段代码,但是当我的程序在 WritableSheet 对象中执行时,它会收到以下警告。我可以知道我错在哪里吗?另外,我正在使用键驱动框架来编写工作表。

Warning:  Sheet name D:\eclipse-jee-kepler-SR1-win32\Workspace\AutomationFramework\configuration\GmailTestSuite.xls too long - truncating
Warning: : is not a valid character within a sheet name - replacing
Warning: \ is not a valid character within a sheet name - replacing

我用来写一张纸的代码:

public class WritableData {

Workbook wbook;
WritableWorkbook wwbCopy;
String ExecutedTestCasesSheet;
WritableSheet shSheet;

public WritableData(String testSuitePath, String string) {
// TODO Auto-generated constructor stub

try {
wbook = Workbook.getWorkbook(new File(testSuitePath));
wwbCopy = Workbook.createWorkbook(new File(testSuitePath));
// shSheet=wwbCopy.getSheet(1);
shSheet = wwbCopy.createSheet(testSuitePath, 1);
} catch (Exception e) {
// TODO: handle exception
System.out.println("Exception message" + e.getMessage());
e.printStackTrace();
}
}

public void shSheet(String strSheetName, int iColumnNumber, int iRowNumber,
String strData) throws WriteException {
// TODO Auto-generated method stub

WritableSheet wshTemp = wwbCopy.getSheet(strSheetName);
WritableFont cellFont = null;
WritableCellFormat cellFormat = null;

if (strData.equalsIgnoreCase("PASS")) {
cellFont = new WritableFont(WritableFont.TIMES, 12);
cellFont.setColour(Colour.GREEN);
cellFont.setBoldStyle(WritableFont.BOLD);

cellFormat = new WritableCellFormat(cellFont);
cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
}

else if (strData.equalsIgnoreCase("FAIL")) {
cellFont = new WritableFont(WritableFont.TIMES, 12);
cellFont.setColour(Colour.RED);
cellFont.setBoldStyle(WritableFont.BOLD);

cellFormat = new WritableCellFormat(cellFont);
cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
}

else {
cellFont = new WritableFont(WritableFont.TIMES, 12);
cellFont.setColour(Colour.BLACK);

cellFormat = new WritableCellFormat(cellFont);
cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
cellFormat.setWrap(true);
}

Label labTemp = new Label(iColumnNumber, iRowNumber, strData,
cellFormat);
try {
wshTemp.addCell(labTemp);

} catch (Exception e) {
e.printStackTrace();
}

}

public void closeFile() {
try {
// write the value in work book
wwbCopy.write();
// wwbCopy.close();

// Closing the original work book
wbook.close();
} catch (Exception e) {
e.printStackTrace();

}
}
}

最佳答案

首先您应该了解术语。

工作簿 =整个Excel文档,它是文件的全部内容。

工作表 = 工作簿的一部分,一个 Excel“页面”。一个工作簿可以有多个工作表。

工作表名称位于 Excel 文件底部的小选项卡中。传递一些更短、更有用的内容,例如数据

enter image description here

<小时/>

您的代码中存在多个问题。我将讨论其中一些与您的问题相关的内容。

在此处打开文件/工作簿:

wbook = Workbook.getWorkbook(new File(testSuitePath));

在下一行中,您创建一个具有相同名称的新工作簿 - 通过此操作您将覆盖以前的文件,因此它现在为空:

wwbCopy = Workbook.createWorkbook(new File(testSuitePath));

最后,您将创建一个名称不正确的新工作表:

shSheet = wwbCopy.createSheet(testSuitePath, 1);

您的工作表名称不应与文件名称相同。

<小时/>

顺便说一句,在 Java 中,您应该在文件名中使用 '/',而不是 '\'。 Java会根据目标操作系统将所有斜杠转换为正确的字符。

关于异常处理,请阅读 Is it really that bad to catch a general exception?In Java, what is the difference between catch a generic exception and a specific exception (eg. IOException?) 。不要捕获一般异常。

关于java - 无法使用 JXL 写入 Excel 文档 ("Sheet name too long - truncating"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28655598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com