2014-09-06 159 views
1

我正在学习生物医学信息学,现在我正在做我的临床实践,在那里我必须检查对于住院患者的费用在独特充电(每程序和用品都有编纂)。扫描的问题

我可以在我正在做的软件上导入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"); 
     } 
    } 
} 
+0

你的问题是严重低估,所以它几乎不可能帮助你。 – 2014-09-06 18:07:53

+0

您期望从该程序中获得哪些行为?你有什么确切的实施问题?到目前为止,您为了解决实施问题而试图做些什么?您的项目范围与问题无关。 – ericbn 2014-09-06 18:13:59

回答

0

在导入Excel文件保存为CSV(逗号分隔)文件(remeber删除标题)。然后打开我的文档下的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.*;