Есть ли способ скопировать / скопировать файлы Excel с java? - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь написать программу, в которой мне нужно либо

  1. создать файл exel и вставить в него таблицу (и, в конечном итоге, данные), ИЛИ

  2. продублируйте созданный мной файл шаблона exel и скопируйте его в новый каталог для использования.

Я получил работающую 'дублирующуюся' часть, но Я не могу открыть дублированный файл (он говорит, что формат / расширение файла недействительно).

enter image description here

Это код:

try {
                    var template = new RandomAccessFile(App.NAME+".xlsx", "rw");
                    var copy = new RandomAccessFile(App.data.getFilePath()+App.NAME+".xlsx", "rw");

                    var sourceChannel = template.getChannel();
                var destinationChannel = copy.getChannel();
                destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());

                System.out.println("Successfully created exel file");

            } catch (IOException e) {
                System.err.println("Error creating exel file: " + e.getMessage());
            }

Кто-нибудь знает, что я должен сделать, чтобы это исправить? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Это все, что вам нужно для копирования, языковой уровень должен быть 7 или выше

import java.io.IOException;
import java.nio.file.*;


public class ExcelCopy {

public static void main(String[] args) {

    FileSystem system = FileSystems.getDefault();
    Path original = system.getPath("C:\\etc\\etc\\Desktop\\ExcelTestOne.xlsx");
    Path target = system.getPath("C:\\etc\\etc\\Desktop\\ExcelCopy.xlsx");

    try {
        // Throws an exception if the original file is not found.
        Files.copy(original, target, StandardCopyOption.REPLACE_EXISTING);
    } catch (IOException ex) {
        System.out.println("ERROR");
    }
}

}

оригинальный пост здесь, я проверяю, что он работал для вас. Как скопировать файл Excel?

0 голосов
/ 13 января 2020

В следующем примере создается файл Excel с именем example.xls. Файл содержит таблицу с двумя столбцами (имя, должность) и одной строкой (байрем, разработчик).

enter image description here

Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Persons");
sheet.setColumnWidth(0, 6000); //style
sheet.setColumnWidth(1, 4000);//style

Row header = sheet.createRow(0);

CellStyle headerStyle = workbook.createCellStyle();//style
headerStyle.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());//style
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);//style

XSSFFont font = ((XSSFWorkbook) workbook).createFont();//style
font.setFontName("Arial");//style
font.setFontHeightInPoints((short) 16);//style
font.setBold(true);//style
headerStyle.setFont(font);//style

Cell headerCell = header.createCell(0);
headerCell.setCellValue("Name");
headerCell.setCellStyle(headerStyle);//style

headerCell = header.createCell(1);
headerCell.setCellValue("Job");
headerCell.setCellStyle(headerStyle);//style

CellStyle style = workbook.createCellStyle();//style
style.setWrapText(true);//style

Row row = sheet.createRow(2);
Cell cell = row.createCell(0);
cell.setCellValue("Bayrem");
cell.setCellStyle(style);//style

cell = row.createCell(1);
cell.setCellValue("Developer");
cell.setCellStyle(style);//style

File currDir = new File(".");
String path = currDir.getAbsolutePath();
String fileLocation = path.substring(0, path.length() - 1) + "example.xlsx";

FileOutputStream outputStream = new FileOutputStream(fileLocation);
workbook.write(outputStream);
workbook.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...