Я хочу записать вывод displayDirectoryContents на лист Excel - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу записать вывод displayDirectoryContents на лист Excel

Я попытался с помощью метода POI Apache. Я хочу получить вывод на лист Excel Папка и имя файла в одном столбце и имяфайлы в другом столбце операторов импорта

public class Excel {

private static String dest = "C:\\Users\\mahselva\\testexcel.xls";
private static HSSFWorkbook myWorkBook = new HSSFWorkbook();
private static HSSFSheet mySheet = myWorkBook.createSheet();

public static void excelLog(String filename, String message, int rowNum) 
{

HSSFRow myRow = null;
HSSFCell myCell = null;
String excelData[][] = new String[1][2];
excelData[0][0] = filename;
excelData[0][1] = message;

myRow = mySheet.createRow(rowNum);

for (int cellNum = 0; cellNum < 2; cellNum++) {
    myCell = myRow.createCell(cellNum);
    myCell.setCellValue(excelData[0][cellNum]);

}
try {
    FileOutputStream out = new FileOutputStream(dest);
    myWorkBook.write(out);
    out.close();
} catch (Exception e) {
    e.printStackTrace();
}
}

public static void main(String[] args) {
File currentDir = new File("C:\\OracleATS\\openScript"); // current 
directory
displayDirectoryContents(currentDir);
}
public static void displayDirectoryContents(File dir) {
try {
    int i = 0;
    File[] files = dir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            Path path = Paths.get(file.getCanonicalPath());
            //System.out.println("Folder" 
+path.getFileName().toString());
            excelLog("Folder",path.getFileName().toString(),i);
            i++;
            displayDirectoryContents(file);
        } else {
            Path path = Paths.get(file.getCanonicalPath());
            //System.out.println(path.getFileName().toString());
            excelLog("File",path.getFileName().toString(),i);
            i++;
        }

    }
} catch (IOException e) {
    e.printStackTrace();
} 
}
}

Я хочу два столбца в листе Excel с столбцом 1, содержащим файл или папку, и столбцом 2, содержащим имя файла / папки, например, файл books.xml Сценарий папки

Таким образом, я хочу записать вывод в лист Excel Я использую функцию журнала Excel для записи на экран вывода

1 Ответ

0 голосов
/ 05 ноября 2019

Я использую это, чтобы написать в Excel - однако я делаю это в формате .csv, а не xls. Поэтому это может быть не то, что вам нужно, но это все еще частично полезно, поскольку он записывает в файл, который может быть без труда открыт Excel.

public static void printAtFile(String filename, String header, String content[])
    {
        filename+=".csv";
        System.out.println("Start creating file "+filename);
        PrintWriter writer = null;
        try {
            writer = new PrintWriter(filename);
            writer.println(header);
            for(String u:content)
                writer.println(u);
            writer.close();
        } catch (Exception ex) {
            System.out.println("Error while writing at file "+filename);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...