我正在保存一个. txt和. doc文件,其中包含我的JTable中的数据。当它保存时,它会像在表格中一样将文本放在外面,但是由于数据长度不同,它不适合。所以我试着把日期安排如下:
第1列名称:第1行第1列数据
第2列名称:第1行第2列数据
第3列名称:第1行第3列数据
第4列名称:第1行第4列数据
第1列名称:第2行第1列数据
第2列名称:第2行第2列数据
第3列名称:第2行第3列数据
第4列名称:第2行第4列数据
等等。
我现在掌握的代码是:
private void saveResultsActionPerformed(ActionEvent evt) {
int returnVal = fileChooser.showSaveDialog(NewJFrame.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
try {
File file = fileChooser.getSelectedFile();
PrintWriter os = new PrintWriter(file);
os.println("");
for (int col = 0; col < table.getColumnCount(); col++) {
os.print(table.getColumnName(col) + "\t");
}
os.println("");
os.println("");
for (int i = 0; i < table.getRowCount(); i++) {
for (int j = 0; j < table.getColumnCount(); j++) {
os.print(table.getValueAt(i, j).toString() + "\t");
}
os.println("");
}
os.close();
System.out.println("Done!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但请记住,我的每个表都有不同数量的列和行。我曾尝试将列和数据保存在数组中,我觉得这是解决问题的正确方法,但我不知道如何按我提到的顺序打印,
下面的代码使用子字符串允许列在文本文件中有序排列。这有点混乱,但第一个for循环处理列标题,第二个for循环处理所有数据。如果要更改每条数据的大小,请将20更改为首选大小。
BufferedWriter bfw = new BufferedWriter(new FileWriter(
"Data.txt"));
for (int i = 0; i < table.getColumnCount(); i++) {//first loop is used for titles of each column
String name = String.valueOf(table.getColumnName(i));
if (name.length() > 20) {//20 (characters long) is the constant I chose to make each value
name = name.substring(0, 20);
} else if (name.length() == 20) {
} else {
String spaces = "";
int diff = 20 - name.length();
while (diff > 0) {
spaces = spaces + " ";
diff--;
}
name = name.concat(spaces);
}
bfw.write(name);
bfw.write("\t");
}
for (int i = 0; i < table.getRowCount(); i++) {//for all the data in the Jtable excluding column headers
bfw.newLine();
for (int j = 0; j < table.getColumnCount(); j++) {
if (table.getValueAt(i, j) == null) {
bfw.write(" ");
bfw.write("\t");
}
else {
String name = String.valueOf((table
.getValueAt(i, j)));
if (name.contains("(")) {
name = name.substring(0, name.indexOf("("));
}
if (name.length() > 20) {
name = name.substring(0, 20);
} else if (name.length() == 20) {
} else {
String spaces = "";
int diff = 20 - name.length();
while (diff > 0) {
spaces = spaces + " ";
diff--;
}
name = name.concat(spaces);
}
bfw.write(name);
bfw.write("\t");
}
}
}
下面提供了我所做的一个最小的例子。我给出以下输出形式:
姓名:凯西姓氏:史密斯体育:滑雪板年份: 5
名字:约翰姓氏:多伊运动:划船
String[] columnNames = {"First Name", "Last Name","Sport","# of Years"};
Object[][] data = {
{"Kathy", "Smith", "Snowboarding", "5"},
{"John", "Doe", "Rowing", "2"},
{"Sue", "Black", "Knitting", "8"},
{"Jane", "White", "Speed reading", "10"},
{"Joe", "Brown", "Pool", "20"}
};
JTable table = new JTable(data, columnNames);
for(int row = 0; row < table.getRowCount(); row++) {
for(int column = 0; column < table.getColumnCount(); column++) {
System.out.print(table.getColumnName(column) + ": ");
System.out.println(table.getValueAt(row, column));
}
System.out.println(""); // Add line space
}
算法非常简单:
for (int row = 0; row < table.getRowCount(); row++) {
for (int col = 0; col < table.getColumnCount(); col++) {
os.print(table.getColumnName(col));
os.print(": ");
os.println(table.getValueAt(row, col));
}
}
问题内容: 我正在保存一个.txt和.doc文件,其中包含来自JTable的数据。在保存的那一刻,它像在表中一样放置文本,但是由于数据长度不同,它无法容纳。因此,我试图按如下所示安排日期: 第1列名称:第1行第1列数据 第2列名称:第1行第2列数据 第3列名称:第1行第3列数据 第4列名称:第1行第4列数据 第1列名称:第2行第1列数据 第2列名称:第2行第2列数据 第3列名称:第2行第3列数据
问题内容: 我最近开始使用Java,当我需要从jTable开始创建excel文件时,我遇到了apache poi库的一些问题。 我已经阅读了许多线程并提出了一些行不通的代码(即使这是非常简单的东西,并且有很多示例,这使我看起来更加愚蠢),我希望有人可以帮助我。 所以这是问题: a) 为什么要编写Excel文件的for循环不填充每个单元格?(excel文件中唯一包含数据的行是第六行,这也让我想知道为
当我启动这个代码时,你通常认为它会在文本文件中输入一个100,但我不知道为什么它会像字符一样输入一个“d”。有人知道如何修复吗?一个方法应该输入一个数据,一个应该输入那个数据,一个应该保存那个数据。
问题内容: 有什么方法可以读取文本文件并将内容存储在Jtable中?我有一个文本文件,其中包含有关某些过程的某些信息。就像一个具有列和各自值的表。是否可以获取.txt文件的内容并以Jtable的形式显示?我正在使用Eclipse和Window Builder。任何帮助将不胜感激。谢谢! 问题答案: 我将研究Oracle的教程: 读/写文本文件 JTable教程 当从文本文件中获取数据时,您需要将其
问题内容: 我想知道如何将PHP变量保存到txt文件,然后再次检索它们。 例: 有一个输入框,提交后,在输入框中写入的内容将保存到文本文件中。稍后,需要将结果作为变量返回。因此,可以说变量是$ text,我需要将其保存到文本文件中并能够再次取回它。 问题答案: 这应该可以执行您想要的操作,但是如果没有更多上下文,我无法确定。 将$ text写入文件: 再次检索它:
问题内容: 我正在使用Apache POI库将大量数据导入Excel文件。我不能使用HSSF模型,因为它需要太多内存,并且Java会抛出内存堆异常。我发现的方法是SXSSF工作簿模型,该模型将每N行写入文件中,而不是将所有工作簿存储在内存中。但是我找不到方法,如何将其保存到.xls(Excel 2003及更低格式)而不是.xlsx。 问题答案: 你不能 如POI组件页面上所述,HSSF用于处理.x