#java #excel #export-to-excel
Вопрос:
Я хочу записать значения в excel с заголовком и соответствующими значениями по строкам следующим образом:
Это то, что я пытаюсь сделать, но я не получаю желаемого результата.
String[] rowHeadings = { "Roll no", "Name", "City", "Country", "Year"};
String[][] values = new String[][] {
new String[] {"101","Tyson","Tokyo","Japan","2nd"},
new String[] {"102","Daichi","Kyoto","Japan","2nd"},
new String[] {"103","Ray","Sapporo","Japan","2nd"},
new String[] {"104","Kai","Osaka","Japan","2nd"},
new String[] {"105","Max","Nagoya","Japan","2nd"}
};
for ( int i = 0; i < rowHeadings.length; i ) {
Row headerColumn = sheet.createRow( i );
//Cell cell = headerColumn.createCell(i);
headerColumn.createCell( 1 ).setCellValue( rowHeadings[i] );
int rownum = 0;
Row row = sheet.getRow(i);
int cellnum = 2;
for(String[] columnValues : values){
for(String data : columnValues){
Cell cell = row.createCell(cellnum );
cell.setCellValue( data);
}
}
}
Не мог бы кто-нибудь помочь мне в том, как правильно заполнить столбец данных?
*Эта проблема еще не решена.
Комментарии:
1. Вы не показываете код, в который вставляете данные, — трудно помочь.
2. обновил сообщение
Ответ №1:
Вы переопределяете строку
Во-первых, вы делаете
Row headerColumn = sheet.createRow( i ); // where i == 0
потом, позже
int rownum = 0;
Row row = sheet.createRow(rownum );
Поскольку вы уже создали строку, вам не нужно делать это снова.
Редактировать
Вы должны быть в состоянии сделать это, просто используя верхний цикл, делая что-то вроде (не проверено)
for ( int i = 0; i < rowHeadings.length; i ) {
Row headerColumn = sheet.createRow( i );
headerColumn.createCell( 1 ).setCellValue( rowHeadings[i] );
headerColumn.createCell( 1 ).setCellValue( values[i][0] );
headerColumn.createCell( 1 ).setCellValue( values[i][1] );
headerColumn.createCell( 1 ).setCellValue( values[i][2] );
headerColumn.createCell( 1 ).setCellValue( values[i][3] );
System.out.println(rowHeadings[i]);
}
Комментарии:
1. Затем при заполнении данных, как они перейдут в следующую строку. Допустим, первая строка, т. е. рулон не заполнен, тогда мне нужно сделать то же самое с именем.
2. Я решил предыдущую проблему, используя эту строку row = sheet.GetRow(i); как вы говорили ранее, не создавайте строку снова. Но , все еще сталкиваясь с проблемой при заполнении данных. Я обновил сообщение. Не могли бы вы, пожалуйста, заглянуть в один раз?
3. каждый раз, когда вы делаете
for(String[] columnValues : values){
, вы начинаете все сначала снова. Попробовать мой путь?4. Он возвращает только одну строку, то есть строку страны.