2014-09-06 66 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.*;