3

csv ファイルがあり、それを JTable にインポートします。

csv ファイルを JTable にインポートする方法を示す簡単な例はありますか?

4

3 に答える 3

8

OpenCSV を使用します。

CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); 
List myEntries = reader.readAll();
JTable table = new JTable(myEntries.toArray());
于 2012-05-05T21:32:54.967 に答える
0

CSVReader を回避したい場合や回避する必要がある場合は、BufferedReader を使用することもできます。もちろん、CSVReader ほど単純ではありません。私はJavaファイル管理の初心者にすぎないので、間違いなく改善できるでしょう。

これは、 https://www.youtube.com/watch?v= L2xczUN9aI0 の「JAVA IO - Java でテキスト ファイル データを JTable にインポートする方法 [ソース コード付き]」から部分的に借用したものです。

import java.io.*;
import java.util.*;
import javax.swing.JTable;
import javax.swing.table.*;

public class test {
    public static void main(String[] args) {
        String inputFileName;
        File inputFile;
        String firstRow;
        Vector<Vector<String>> vectorVectorStringsData = new Vector<Vector<String>>();
        Vector<String> vectorStrings = new Vector<String>();
        Vector<String> vectorColumnIdentifiers = new Vector<String>();
        String[] columnIdentifiers;
        DefaultTableModel model = new DefaultTableModel();
        JTable jTable;
        
        inputFileName = "yourFileName.csv";
        inputFile = new File(inputFileName);
        try (FileReader fr = new FileReader(inputFile);
            BufferedReader br = new BufferedReader(fr)) 
        {
            firstRow = br.readLine().trim();
            if (firstRow != null) {
                // headers:
                columnIdentifiers = firstRow.split(",");

                vectorColumnIdentifiers = new Vector<String>();
                for (int j =0; j < columnIdentifiers.length; j++) {
                    vectorColumnIdentifiers.add(columnIdentifiers[j]);
                }
            }
            // rows
            Object[] tableLines = br.lines().toArray();
            // data rows
            for (int i = 0; i < tableLines.length; i++) {
                System.out.println("4");
                String line = tableLines[i].toString().trim();
                String[] dataRow = line.split(",");
                vectorStrings = new Vector<String>();
                for (int j =0; j < dataRow.length; j++) {
                    vectorStrings.add(dataRow[j]);
                }
                vectorVectorStringsData.add(vectorStrings);
            }
            
            fr.close();
        }
        catch (IOException ioe) {
            System.out.println("error: " + ioe.getMessage());
        }

        model.setDataVector(vectorVectorStringsData, vectorColumnIdentifiers);
        jTable = new JTable(model);
    }
}
于 2020-06-22T08:32:00.463 に答える