gpt4 book ai didi

java - 基于列从 Java 打印到 Excel 文件

转载 作者:行者123 更新时间:2023-12-01 18:18:54 24 4
gpt4 key购买 nike

对于任何格式/其他错误,提前表示歉意,我仍然是 Java 的新手。

我正在进行基因表达分析,其中有一个程序可以打印大约 600 万个基因名称及其表达值,分为 23,000 组,每组 249 个(总共有 249 名患者,每个患者都有 23,000 个基因/基因表达值)。现在,我让这个程序循环遍历所有 249 个单独的患者文件,获取 23,000 个基因值,并打印到一个文本文件(有 600 万行和 2 列,一列用于基因名称,一列用于表达)。

但是,我希望该程序能够打印到 Excel 文件,以便有 249 行(针对每个患者)和 23,000 列(针对每个基因)。我已经尝试了几天(使用 apache POI)来做到这一点,但仍然无法做到。我找到了这个示例代码:https://www.scientecheasy.com/2019/01/write-excel-file-in-java.html ,这就是我一直在尝试修改以适应我的程序的内容,但似乎没有任何效果。我已经包含了我的原始程序(打印到文本文件,但也包含我下载的 POI jar)。任何帮助将不胜感激!

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 工作表中的单独列(而不是行)中。

再次提前感谢您!

最佳答案

尝试看看这个:

www.pela.it,在我的主页中有一个下载“基因表达”工具的链接

两年前我用java做到了这一点,如果这是你想要做的,我会很乐意提供帮助。

它详细说明了 pcr 工具输出的 xml 原始数据,并最终打印包含所有详细说明阶段的分页 Excel。还有一个ppt,详细解释了。

关于java - 基于列从 Java 打印到 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60315304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com