Печать в файл Excel из Java на основе столбцов - PullRequest
0 голосов
/ 20 февраля 2020

Заранее извиняюсь за любые ошибки форматирования / другие ошибки, я все еще новичок ie до Java.

Я провожу анализ экспрессии генов, в котором у меня есть программа, которая печатает ~ 6 миллионов названий генов и их значений экспрессии в 23 000 наборов из 249 (всего 249 пациентов, и у каждого из них 23 000 значений экспрессии генов / генов). Прямо сейчас у меня есть эта программа, перебирающая все 249 отдельных файлов пациентов, получающая 23 000 значений генов и печатающая в текстовый файл (с 6 миллионами строк и 2 столбцами, один столбец для имени гена и один для выражения).

Однако я бы хотел, чтобы эта программа вместо этого печатала в файл Excel, чтобы было 249 строк (для каждого пациента) и 23 000 столбцов (для каждого гена). Я пытался сделать это в течение нескольких дней (с apache POI) и все еще не могу. Я нашел этот пример кода: https://www.scientecheasy.com/2019/01/write-excel-file-in-java.html, который я пытался изменить, чтобы он соответствовал моей программе, но, похоже, ничего не работает. Я включил мою оригинальную программу (которая печатает в текстовый файл, но также включает в себя загруженные файлы POI). Любая помощь будет очень признательна!

import java.io.*;
import java.io.FileOutputStream;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class CreateExcel {


   public static final File folder = new File("C:/Users/menon/OneDrive/Documents/R/TARGET");
   private static PrintStream output;
   XSSFWorkbook wb = new XSSFWorkbook(); 
   XSSFSheet sheet1 = wb.createSheet("values");

   public static void main(String [] args) throws FileNotFoundException {
      output = new PrintStream(new File("final_CSRSEF_data.txt"));
      listFilesForFolder(folder);
   }

   public static double listFilesForFolder(final File folder) throws FileNotFoundException {
      double value = 0.0;
      //contains names of all the 23k genes in order to loop through the 249 files and collect the needed names each time
      File list = new File("C:/Users/menon/OneDrive/Documents/NamesOfGenes.txt");
      Scanner names = new Scanner(list);
      String data;
      while (names.hasNext()) {
         String name = names.next(); 
         //looping through all separate 249 patient files in folder and searching for gene name        
         for (final File fileEntry : folder.listFiles()) {
            Scanner files = new Scanner(fileEntry);
            if (fileEntry.isDirectory()) {
               listFilesForFolder(fileEntry);
            } else {
               while (files.hasNextLine()) {
                  final String lineFromFile = files.nextLine();
                  if(lineFromFile.contains(name)) {
                     //System.out.print(name+ " in file " + fileEntry.getName());
                     String[] thisOne = lineFromFile.split("\\s");
                     String res = thisOne[0];
                     //System.out.println(res);
                     if (res.equals(name)) {
                        print(lineFromFile);
                        print("\n");
                     }
                  }
               }

            }
         }
         print("----------------");
         print("\n");
      }
      return 0.0;
   }

   //print to final_CSRSEF_data.txt
   private static void print(String stat) {
      output.print(stat);
   }
} 

Так что в основном то, что я печатаю перед "---------------" в каждом текстовом файле, должно быть в отдельный столбец (не ряд) в листе Excel.

Еще раз спасибо заранее!

1 Ответ

0 голосов
/ 20 февраля 2020

попробуйте взглянуть на это:

www.pela.it, на моей домашней странице есть ссылка для загрузки инструмента "экспрессии генов"

я сделал это за java два года go и если это то, что вы пытаетесь сделать, я буду рад помочь.

Он разработает вывод xml необработанных данных из инструмента pcr и, наконец, напечатает разбитое на страницы Excel со всеми этапами разработки. Также есть ppt, который подробно объясняет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...