就像標題所暗示的那樣,我正在尋找一種將帶有數據的jtable導出到.csv file
的方法。我不尋找其他選項,然後CSV
,因爲CSV
是我的程序的要求。如何將JTable導出爲.csv文件?
我一直在看某些東西,比如bindy
的apache.camel
把我找不到足夠的信息來理解如何使用它。
建議什麼?如果有人有一個體面的例子,使用bindy
我也不介意。
友好的問候,
Skillcoil
就像標題所暗示的那樣,我正在尋找一種將帶有數據的jtable導出到.csv file
的方法。我不尋找其他選項,然後CSV
,因爲CSV
是我的程序的要求。如何將JTable導出爲.csv文件?
我一直在看某些東西,比如bindy
的apache.camel
把我找不到足夠的信息來理解如何使用它。
建議什麼?如果有人有一個體面的例子,使用bindy
我也不介意。
友好的問候,
Skillcoil
怎麼樣一個小的循環? TableModel提供所有需要的數據,例如行數,列數和數據。
您可以使用apache poi從JTable生成Excel文件,然後使用此代碼 從這裏Converting XLS to CSV files Using Java將XLS文件導出爲CSV文件。
我居然用這種方式來生成CSV文件
感謝您的建議。不幸的是,我想要導出的表格需要選擇導出爲CSV,XLS或TXT文件。所以我需要找到所有3的出口方式(xls我已經安裝了)。如果轉換xls get的方法被接受,我會使用它。 – Skillcoil 2013-05-08 11:28:48
好運我的朋友 – 2013-05-08 13:34:15
這是類似的東西:
public void writeCSVfile(JTable table) throws IOException, ClassNotFoundException, SQLException{
Writer writer = null;
DefaultTableModel dtm = (DefaultTableModel) table.getModel();
int nRow = dtm.getRowCount();
int nCol = dtm.getColumnCount();
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("file.txt"), "utf-8"));
//write the header information
StringBuffer bufferHeader = new StringBuffer();
for (int j = 0; j < nCol; j++) {
bufferHeader.append(dtm.getColumnName(j));
if (j!=nCol) bufferHeader.append(", ");
}
writer.write(bufferHeader.toString() + "\r\n");
//write row information
for (int i = 0 ; i < nRow ; i++){
StringBuffer buffer = new StringBuffer();
for (int j = 0 ; j < nCol ; j++){
buffer.append(dtm.getValueAt(i,j));
if (j!=nCol) buffer.append(", ");
}
writer.write(buffer.toString() + "\r\n");
}
} finally {
writer.close();
}
}
我被指出使用阿比的或utils的更多。例如,bindy使用註釋來指向路由等,但似乎無法弄清楚它是如何工作的,所以我試圖找到替代方案或更好的解決方案,然後我正在研究此刻。 – Skillcoil 2013-05-08 09:35:44
其實我不知道apis,但我有一個java的想法。這個for-loop我說的是超過10行代碼......不知道,如果你真的必須使用一個完整的api來完成這樣一個小任務嗎? – desperateCoder 2013-05-08 10:03:23