Java 将PubMed GEO DataSets中series类型的检索结果转化为Excel

实际进行生信分析时,更需要的是series类型的数据,和Java 将PubMed GEO DataSets中dataset类型的检索结果转化为Excel中的方法一样,首先转成TXT,然后借助jxl包转为Excel。
Java 将PubMed GEO DataSets中series类型的检索结果转化为Excel
Java 将PubMed GEO DataSets中series类型的检索结果转化为Excel
Java 将PubMed GEO DataSets中series类型的检索结果转化为Excel
源代码如下:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ncbi;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/**
 *
 * @author wgyklh
 */
public class Series {

    /**
     * @param args the command line arguments
     * @throws java.lang.Exception
     */
    public static void main(String[] args) throws Exception {
        // TODO code application logic here
        File in = new File("C:\\Users\\Lenovo\\Desktop\\series.txt");
        File out = new File("C:\\Users\\Lenovo\\Desktop\\Series.xls");
        WritableWorkbook wwb = Workbook.createWorkbook(out);
        WritableSheet series = wwb.createSheet("Series", 0);

        series.setColumnView(0, 5);
        series.setColumnView(1, 40);
         series.setColumnView(2, 40);
         series.setColumnView(4, 20);
          series.setColumnView(6, 20);
          series.setColumnView(10, 12);
        
        series.addCell(new Label(0, 0, "Number"));
        series.addCell(new Label(1, 0, "Title"));
        series.addCell(new Label(2, 0, "Introduction"));
        series.addCell(new Label(3, 0, "Organism"));
        series.addCell(new Label(4, 0, "Type"));
        series.addCell(new Label(5, 0, "Dataset"));
        series.addCell(new Label(6, 0, "Platform(s)"));
        series.addCell(new Label(7, 0, "Sample"));
        series.addCell(new Label(8, 0, "FTP download"));
        series.addCell(new Label(9, 0, "SRA Run Selector"));
        series.addCell(new Label(10, 0, "Accession"));
        series.addCell(new Label(11, 0, "ID"));
        series.addCell(new Label(12, 0, "Project"));

        BufferedReader reader = null;
        String tempString = null;
        int number = 1;
        int index0, index1, index2, index3, index4, index5, index6;
        try {
            reader = new BufferedReader(new FileReader(in));
            for (int n = 1; n <= 347; n++) {
                tempString = reader.readLine();
                tempString = reader.readLine();

                series.addCell(new Label(0, number, String.valueOf(number)));

                series.addCell(new Label(1, number, tempString.substring(tempString.indexOf(".") + 2)));

                tempString = reader.readLine();
                series.addCell(new Label(2, number, tempString));

                tempString = reader.readLine();
                index0 = tempString.indexOf("Project:");
                if(index0!=-1){
                   series.addCell(new Label(12, number, tempString.substring(10)));
                    tempString = reader.readLine();
                }
                else series.addCell(new Label(3, number, tempString.substring(10)));

                tempString = reader.readLine();
                series.addCell(new Label(4, number, tempString.substring(6)));

                tempString = reader.readLine();

                index1 = tempString.indexOf("Dataset");
                index2 = tempString.indexOf(":");
                index3 = tempString.indexOf("Sample");
                index4 = tempString.indexOf("related");

                series.addCell(new Label(5, number, "—"));
                if (index1 != -1) {
                    series.addCell(new Label(5, number, tempString.substring(index1 + 9, index1 + 16).trim()));
                }

                if (tempString.substring(index3 - 4, index3 - 2).contains(" ")) {
                    series.addCell(new Label(7, number, tempString.substring(index3 - 3, index3 - 1).trim()));
                    series.addCell(new Label(6, number, tempString.substring(index2 + 2, index3 - 3).trim()));
                } else {
                    series.addCell(new Label(7, number, tempString.substring(index3 - 5, index3 - 1).trim()));
                    series.addCell(new Label(6, number, tempString.substring(index2 + 2, index3 - 5).trim()));
                }

                if (index4 != -1) {
                    series.addCell(new Label(6, number, tempString.substring(0, index2 + 9).trim()));
                }

                tempString = reader.readLine();
                series.addCell(new Label(8, number, tempString.substring(14)));

                tempString = reader.readLine();
                index5 = tempString.indexOf("SRA");
                if (index5 != -1) {
                    series.addCell(new Label(9, number, tempString.substring(18)));
                    tempString = reader.readLine();
                }

                index6 = tempString.indexOf("ID");
                series.addCell(new Label(10, number, tempString.substring(19, index6 - 1)));
                series.addCell(new Label(11, number, tempString.substring(index6 + 4)));

                number++;
            }

            reader.close();
            wwb.write();
            wwb.close();
        } catch (FileNotFoundException e) {
        } catch (IOException e) {
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                }
            }
        }

    }
}