zu setzen Ich habe 2 Arrays, die in der Länge variieren und möchten die Daten beginnend bei B3 und D3 nach unten einfügen Dies sind v8columnname und v9columnname. Ich habe auch 2 v8tableNames und v9tableNames, die bereits gefüllt sind. Meine Arraylisten werden aus zwei verschiedenen Datenbanken abgefragt und ich plane, die beiden Zeilen in VBA zu vergleichen, aber ich habe dieses Makro bereits eingerichtet. Ich bleibe nur dran, die Zeilen so auszurichten, dass sie genau ausgerichtet sind, denn der Code hat jetzt die B-Spalte, die bei B3 beginnt, aber die D-Spalte beginnt beim letzten Index der B-Zeile. Jede Hilfe wird sehr geschätztZellenwerte werden nicht in die richtige Zeile kopiert, wenn versucht wird, cellvalue in Excel aus Java (POI API)
ArrayList v8tableNames = new ArrayList();
ArrayList v9tableNames = new ArrayList();
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet;
XSSFRow row;
ArrayList v8columns = new ArrayList();
ArrayList v9columns = new ArrayList();
for (int i = 0; i<5; i++) {
sheet = workbook.createSheet();
row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Version 8");
row = sheet.getRow(0);
cell = row.createCell(2);
cell.setCellValue("Version 9");
row = sheet.getRow(0);
cell = row.createCell(3);
cell.setCellValue(v9tableNames.get(i).toString());
//getv9 is a function that returns column names from v8table
v9columns = getv9Columns(v9tableNames.get(i).toString());
row = sheet.getRow(0);
//set C1 to v9tablename, one value from the array
cell = row.createCell(3);
cell.setCellValue(v9tableNames.get(i).toString());
//loop through all table names on v9 to see if there is a match for v8
for (int count = 0; count<v9tableNames.size();count++) {
//checks if there is a match in table names
if (v9tableNames.get(i).toString().equals(v8tableNames.get(count).toString())) {
//puts v8 table name in B1
cell = row.createCell(1);
cell.setCellValue(v8tableNames.get(count).toString());
//getv8 is a function that returns table names
v8columns = getv8Columns(v8tableNames.get(count).toString());
for (int k = 0; k<v8columns.size() || k<v9columns.size();k++) {
//would like to put columnnames from v8table here starting at B3
row = sheet.createRow(k+2);
cell = row.createCell(1);
cell.setCellValue(v8columns.get(k).toString());
}
}
}
//put v9columns into D3, this is where it gets stuck putting the last value into D(lastindex of B)
for (int m = 0; m<v9columns.size();m++) {
cell = row.createCell(3);
cell.setCellValue(v9columns.get(m).toString());
}
}
try {
FileOutputStream out = new FileOutputStream(
new File("Connect.xlsx"));
workbook.write(out);
out.close();
System.out.println("Workbook.xlsx written successfully");
} catch(Exception e) {
e.printStackTrace();
}