2012-05-05 111 views
1

我有一个csv文件我想将它导入到一个JTable。导入csv到JTable

是否有一个简单的例子显示如何将csv文件导入到JTable?

回答

6

使用OpenCSV:

CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); 
List myEntries = reader.readAll(); 
JTable table = new JTable(myEntries.toArray()); 
+0

谢谢,它的工作。 – Lucy

+0

欢迎您! – DaTroop

4

最后的答案并没有为我工作,因为JTable中想我有一个Object [] []和一个String [](列名)... 做是这样的:

Object[] columnnames; 
CSVFileReader = new CSVReader(new FileReader(csvFile)); 
List myEntries = CSVFileReader.readAll(); 
columnnames = (String[]) myEntries.get(0); 
DefaultTableModel tableModel = new DefaultTableModel(columnnames, myEntries.size()-1); 
int rowcount = tableModel.getRowCount(); 
for (int x = 0; x<rowcount+1; x++) 
{ 
    int columnnumber = 0; 
    // if x = 0 this is the first row...skip it... data used for columnnames 
    if (x>0) 
    { 
     for (String thiscellvalue : (String[])myEntries.get(x)) 
     { 
      tableModel.setValueAt(thiscellvalue, x-1, columnnumber); 
      columnnumber++; 
     } 
    } 
} 

JTable MyJTable = new JTable(tableModel); 

此外,如果你想保留反斜杠字符在您的数据,以此作为一个构造函数:

CSVFileReader = new CSVReader(new FileReader(csvFile), ',', '"', '\0'); 

这将“\ 0”设置为转义字符。我认为,这种逃生角色并没有任何意义。看到这个线程:opencsv in java ignores backslash in a field value

+0

你用什么进口? – TheCrazyProfessor

+0

import com.opencsv.CSVReader; import java.util.List; import javax.swing.table.DefaultTableModel; import javax.swing.JTable; – pcalkins