Запись столбца данных с помощью Apache PoiJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Запись столбца данных с помощью Apache Poi

Сообщение Anonymous »

Мне очень трудно, и я не знаю, как решить эту проблему. Моя проблема в том, что я перебираю множество файлов из папки. Для каждого файла я помещаю данные в список конкретных столбцов. Мне нужен вывод ниже в Excel с использованием Apache POI, но я могу сделать это при печати по строке, но не по столбцу. Может ли кто-нибудь помочь? По сути, я хочу, чтобы имя файла печаталось для каждого соответствующего списка, связанного с ним.
Вывод:

Код: Выделить всё

FileName,ObjectData,FieldData,AppData
Foo,"Obj1","F1","App1"
Foo,"Obj2","","App2"
Foo,"","","App3"
Foo,"","","App4"
Foo,"","","App5"
Test,"","F1","App1"
Test,"","F2",""
Test,"","F3",""
Test,"","F4",""

Код: Выделить всё

package cruft;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Main {
private static String outPath = "path";

public static void main(String[] args) throws Exception{
SXSSFWorkbook wb = new SXSSFWorkbook();
Sheet sheet = wb.createSheet("Analysis.xlsx");
List fileList = Arrays.asList("Foo","Test");
List fooObjectData = Arrays.asList("Obj1","Obj2");
List fooFieldData = Arrays.asList("F1");
List fooAppData = Arrays.asList("App1","App2","App3","App4","App5");

List testObjectData = Arrays.asList("");
List testFieldData = Arrays.asList("F1","F2","F3","F4","F5");
List testAppData = Arrays.asList("App1");
for(String fileName: fileList) {
Row row = sheet.createRow(0);
for (int i = 0; i < 3; i++) {
Cell cell = row.createCell(i);
if(fileName.equals("Foo")) {
for(String s : fooObjectData) {
cell.setCellValue(s);
}
for(String s : fooFieldData) {
cell.setCellValue(s);
}
for(String s : fooAppData) {
cell.setCellValue(s);
}
}
else {
for(String s : testObjectData) {
cell.setCellValue(s);
}
for(String s : testFieldData) {
cell.setCellValue(s);
}
for(String s : testAppData) {
cell.setCellValue(s);
}
}

}
}
writeToFile(wb);
}

private static void writeToFile(SXSSFWorkbook wb) throws IOException {
File f = new File(outPath);
if (!f.exists()) {
f.createNewFile();
}
FileOutputStream out = new FileOutputStream("foo.xlsx");
wb.write(out);
out.close();

//After everything is written, then we dispose the temp file.
wb.dispose();
}

}
Когда я запускаю приведенную выше команду, он печатает только
App1 App1 App1
Я пытался запустить указанную выше команду, но результат ниже
Приложение1 Приложение1 Приложение1

Подробнее здесь: https://stackoverflow.com/questions/791 ... apache-poi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»