扫描问题

时间:2014-09-06 18:05:27

标签: java excel netbeans

我正在学习生物医学信息学,我现在正在做我的临床实践,在那里我必须检查住院患者的费用是否在 独特充电的供应上正确执行 (所使用的每个程序和用品都有编纂)。

我可以在我正在做的软件上导入Excel文件,但我现在不知道如何进行扫描。 这是代码(我在NetBeans上做的),

public class Portal extends javax.swing.JFrame {

private DefaultTableModel model;
public static int con = 0;
public ArrayList listas = new ArrayList();
public ArrayList listasr = new ArrayList();

public Portal() {
    initComponents();
    model = new DefaultTableModel();
    jTable1.setModel(model);
}                             

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

     JFileChooser examinar = new JFileChooser();
    examinar.setFileFilter(new FileNameExtensionFilter("Archivos Excel", "xls", "xlsx"));
    int opcion = examinar.showOpenDialog(this);
    File archivoExcel = null;

    if(opcion == JFileChooser.APPROVE_OPTION){

        archivoExcel = examinar.getSelectedFile().getAbsoluteFile();
        try{
            Workbook leerExcel = Workbook.getWorkbook(archivoExcel);
            for (int hoja=0; hoja<leerExcel.getNumberOfSheets(); hoja++)
            {
                Sheet hojaP = leerExcel.getSheet(hoja);
                int columnas = hojaP.getColumns();
                int filas = hojaP.getRows();
                Object data[]= new Object[columnas];
                for (int fila=0; fila < filas; fila++)
                {
                    for(int columna=0; columna < columnas; columna++)
                    {
                        if(fila==0)
                        {
                            model.addColumn(hojaP.getCell(columna, fila).getContents());
                        }
                        System.out.println(hojaP.getCell(columna, fila).getContents());
                        if(fila>=1)
                        data[columna] = hojaP.getCell(columna, fila).getContents();  
                    }model.addRow(data);
                }
            }
            model.removeRow(0);
            JOptionPane.showMessageDialog(null, "Excel cargado exitosamente");
        } 
    }
}

1 个答案:

答案 0 :(得分:0)

在导入excel文件之前,请将其另存为csv(逗号分隔)文件(记住删除标题)。然后打开我的文档下的netbeans项目文件夹,然后打开你的项目文件夹并将csv文件转储到他们的文件夹中。在netbeans打开文件夹的文件下查看你的项目,你会看到他们的文件。现在你说你要读取文件/扫描文件。

您最初可以使用我的方法,了解它并适应您将来的其他方案。

首先创建一个类或使用一个容易创建的(你已经创建的java类)。

根据excel文件中的行数而不是csv文件和计数器声明数组。 例二。

 String [] patientsnamess;
    int [] ages;
    int count;

现在在一个deafault构造函数中启动数组(你不必这样做,因为你可以在声明它们时执行它,但它是常规的)。您可以了解构造函数,我知道有两个,或者只有两个,但我只会显示默认构造函数。

看起来像这样。

       public yourClassName(){
        patientsnames = new String[400];//the number in square brackets are an example it sets the size of the array. You can set the size according to how many patients there are or you could just use lists as the limit on the list as dependent on primary and virtual memory.
    ages = new int[400];
    count = 0;
}

现在创建方法二读取文本文件。

    public void readFile(){
    count = 0;//important
    Scanner contents = null;
    try{
    contents = new Scanner(new FileReader("You file's name.txt");
    while(contents.hasNext()){
    String a = contents.nextLine();
    String p[]= a.split("\\;");
    patientsnames[count] = p[0];
    ages[count] = p[1];
    count++;//important
    }
} 
catch(FileNotFoundException e){
System.out.println(e.getMessage());
}
    }

现在创建get方法以使用文件中的值调用数组。(查找stackoverflow的其余部分)。 记住,字段类型与文件中的数据相关联。

我真的希望这适合你。如果不是,我很抱歉,祝你生化信息学课程好运。 记得在这种情况下使用对象调用readFile方法,否则它将无法正常工作。 研究必要的进口,如:

import java.io.*;
import java.util.*;