调用poi java时的函数
你好,我有一个问题,我有一个excel文件,我已经从这个文件中恢复了数据,然后我创建了一个函数来测试补丁是否存在于另一个工作表中,或者是否一切正常,直到。。。然后,如果补丁存在,我想在每个补丁之前显示“是”,否则显示“否”,但问题是,在创建输出文件时,即使补丁存在,它也会显示所有补丁“否” 代码如下:调用poi java时的函数,java,excel,apache-poi,Java,Excel,Apache Poi,你好,我有一个问题,我有一个excel文件,我已经从这个文件中恢复了数据,然后我创建了一个函数来测试补丁是否存在于另一个工作表中,或者是否一切正常,直到。。。然后,如果补丁存在,我想在每个补丁之前显示“是”,否则显示“否”,但问题是,在创建输出文件时,即使补丁存在,它也会显示所有补丁“否” 代码如下: //Create Other rows and cells with data for (int i = 0; i < patches.size(); i++) { if (patc
//Create Other rows and cells with data
for (int i = 0; i < patches.size(); i++) {
if (patches.get(i).getOrigin_Environment().endsWith("MT22")) {
Row roww = sheet_outputMT22.createRow(i+1);
roww.createCell(0).setCellValue(patches.get(i).getVaFxNumber());
roww.createCell(1).setCellValue(patches.get(i).getVaVersion());
roww.createCell(2).setCellValue(patches.get(i).getVaPackage());
roww.createCell(3).setCellValue(patches.get(i).getVaLevmat());
roww.createCell(4).setCellValue(patches.get(i).getOrigin_Environment());
roww.createCell(5).setCellValue(patches.get(i).getVaSrcCode());
roww.createCell(6).setCellValue(patches.get(i).getInstalled());
} else if (patches.get(i).getOrigin_Environment().endsWith("DV46")) {
Row rowww = sheet_outputDV46.createRow(i+1);
rowww.createCell(0).setCellValue(patches.get(i).getVaFxNumber());
rowww.createCell(1).setCellValue(patches.get(i).getVaVersion());
rowww.createCell(2).setCellValue(patches.get(i).getVaPackage());
rowww.createCell(3).setCellValue(patches.get(i).getVaLevmat());
rowww.createCell(4).setCellValue(patches.get(i).getOrigin_Environment());
rowww.createCell(6).setCellValue(patches.get(i).getVaSrcCode());
}
}
try {
FileOutputStream fileOut = new FileOutputStream("heroes_output.xls");
workbook_output.write(fileOut);
fileOut.close();
workbook_output.close();
LOGGER.log(Level.INFO, "Output excel file generated successfuly");
} catch (Exception e) {
// TODO: handle exception
LOGGER.log(Level.SEVERE, e.getMessage());
}
}
public static void initializeOutputFile() {
// Create outputWorkbook
sheet_outputMT22 = workbook_output.createSheet("MT22");
sheet_outputDV46 = workbook_output.createSheet("DV46");
// create row
Row headerRow = sheet_outputMT22.createRow(0);
Row headerRoww = sheet_outputDV46.createRow(0);
// Creating cells
for (int i = 0; i < columns.length; i++) {
Cell cell = headerRow.createCell(i);
Cell cellDv46 = headerRoww.createCell(i);
cellDv46.setCellValue(columns[i]);
cell.setCellValue(columns[i]);
}
// Resize all columns to fit the content size
for (int i = 0; i < columns.length; i++) {
sheet_outputMT22.autoSizeColumn(i);
sheet_outputDV46.autoSizeColumn(i);
}
}
// Create RF80 List
public static List<String> createRF80List(Sheet envARF80_sheet){
for (int rowNumberr = 2; rowNumberr <= envARF80_sheet.getLastRowNum(); rowNumberr++) {
HSSFRow row1 = (HSSFRow) envARF80_sheet.getRow(rowNumberr);
HSSFCell cell_NUMOD = row1.getCell(0);
Cell cell_NUMODI = row1.getCell(0);
if (cell_NUMODI == null) {
cell_NUMODI = new StreamingCell(4, row1.getRowNum());
}
double number1 = cell_NUMODI.getNumericCellValue();
String RF80CELL = new Double(number1).toString();
listRF80.add(RF80CELL) ;
}
return listRF80 ;
}
//Create Patches List
public static List<Patch> createPatches(Sheet validation_sheet) {
String ins;
for (int rowNumber = 2; rowNumber <= validation_sheet.getLastRowNum(); rowNumber++) {
HSSFRow row = (HSSFRow) validation_sheet.getRow(rowNumber);
HSSFCell cell = row.getCell(3);
HSSFCell cell2 = row.getCell(4);
HSSFCell cell3 = row.getCell(12);
if (cell != null && cell2 != null) {
// do something with the cell
if (cell.getStringCellValue().endsWith("Y") && cell2.getStringCellValue().endsWith("MT22") ) {
HSSFCell cell_vafxnumber = row.getCell(0);
HSSFCell cell_VaVersion = row.getCell(1);
HSSFCell cell_VaPackage = row.getCell(2);
HSSFCell cell_VaLevmat = row.getCell(3);
Cell cell_VaSrcCode = row.getCell(12);
if (cell_VaSrcCode == null) {
cell_VaSrcCode = new StreamingCell(12, row.getRowNum());
}
Cell cell_Origin_Environment = row.getCell(4);
if (cell_Origin_Environment == null) {
cell_Origin_Environment = new StreamingCell(4, row.getRowNum());
}
double number = cell_vafxnumber.getNumericCellValue();
String number_string = new Double(number).toString();
String VaVersion = cell_VaVersion.getStringCellValue();
String VaPackage = cell_VaPackage.getStringCellValue();
String VaLevmat = cell_VaLevmat.getStringCellValue();
String Origin_Environment = cell_Origin_Environment.getStringCellValue();
String VaSrcCode = cell_VaSrcCode.getStringCellValue();
String installed = verifExistingPatch(listRF80);
Patch patchh = new Patch(number_string, VaPackage, VaVersion, VaLevmat, Origin_Environment, VaSrcCode , installed);
patches.add(patchh);
}
}
}
return patches;
}
public static String verifExistingPatch(List<String> listRF80 ) {
String exist = "" ;
for(int i = 0 ; i<patches.size() ; i++) {
for(int j =0 ; j<listRF80.size() ; j++)
if(patches.get(i).getVaFxNumber().contains(listRF80.get(j))) {
exist = "Yes" ;
System.out.println(patches.get(i).getVaFxNumber() + " Le patche est installes " + exist) ;
}else if (!patches.get(i).getVaFxNumber().contains(listRF80.get(j))) {
exist="No";
}
}
return exist;
}
//使用数据创建其他行和单元格
对于(int i=0;i 对于(int rowNumberr=2;rowNumberr)当您找到修补程序并将return设置为“Yes”时,是否可以在第二个“for”循环中尝试使用“return”命令,否则您将在下一次迭代中覆盖它..您能向我详细解释一下怎么做吗?超过.Detailsreturn exist;//将其放在代码底部的第7行相同的问题人:/listRF80包含getNumericCellValue(),而不是您从具有get fax number的修补程序中检查的内容..您能在第二个“for”内尝试使用“return”吗找到修补程序并将return设置为“Yes”时循环,否则将在下一次迭代中覆盖。.您能向我详细解释一下如何操作吗?超过。详细信息返回;//将其放在代码底部的第7行相同的问题人:/listRF80包含getNumericCellValue(),而不是您使用get fax number从修补程序中检查的内容。。