Итак, сейчас я создаю программу для чтения, редактирования и размещения данных из существующего файла Excel в новый файл Excel с использованием JXL Java-библиотеки , На этом этапе я просто хочу прочитать данные из существующего файла Excel и поместить его в новый. Не похоже, чтобы найти хороший способ сделать это и для будущей работы - лучший способ редактировать данные (имея определенные столбцы) и помещать их в новый файл Excel.Чтение ячеек из существующего файла Excel и запись их в новый файл Excel с использованием Java
Извините, если что-то неясно, просто получите доступ к Java и Stackoverflow.
import java.io.*;
import jxl.*;
import jxl.write.Number;
import jxl.write.*;
class Extraction {
private String inputFile;
String data;
public void setInputFile(String inputFile){
this.inputFile = inputFile;
}
public void read() throws IOException {
File spreadsheet = new File(inputFile);
Workbook w;
try {
w = Workbook.getWorkbook(spreadsheet);
Sheet page = w.getSheet(0);
File f = new File("C:\\Users\\alex\\Desktop\\New_Export.xls");
if (!f.exists()){
String FileName = "C:\\Users\\alex\\Desktop\\New_Export.xls";
WritableWorkbook excel = Workbook.createWorkbook(new File(FileName));
WritableSheet sheet = excel.createSheet("Sheet1", 0);
for (int y = 0; y < page.getRows(); y++){
for (int x = 0; x < page.getColumns(); x++){
Cell cell = page.getCell(x ,y +1);
CellType type = cell.getType();
if(type == CellType.LABEL || type == CellType.NUMBER){
data = cell.getContents();
System.out.println(data);
//To now input the read data into the new Excel File
sheet.addCell();
}
}
System.out.println(" ");
}
System.out.println("The File Has Successfully Been Created!");
excel.write();
excel.close();
}
else{
System.err.println("File is already created!");
}
}
catch(Exception e){
System.out.println(" ");
}
}
public static void main (String args[]) throws IOException{
Extraction reading = new Extraction();
reading.setInputFile("C:\\Users\\alex\\Desktop\\export.xls");
reading.read();
}
}
любой специальная причина использования jxl над apache poi? – BadK
Нет особых причин. Может ли Apache POI быть более способным/гибким для этой задачи? –
Я думаю, что вы можете выполнить свою задачу в обеих библиотеках, но, как я вижу, jxl получил последнее обновление в 2012 году (возможно, мертвое) и POI в 2015 году. Кроме того, у вас есть некоторая библиотека noname против продукта apache (которые могут знать лишь немногие, но все еще под капотом апача). Вы всегда должны использовать/учиться чему-то, что имеет лучшее будущее и поддержку, если у вас есть выбор. – BadK