Java 将JTable导出到excel-转义下一列的值
在我的文件编写器中,我有这些代码,j==4和j==8是为包含数字的列执行不同的代码Java 将JTable导出到excel-转义下一列的值,java,swing,jtable,export-to-excel,filewriter,Java,Swing,Jtable,Export To Excel,Filewriter,在我的文件编写器中,我有这些代码,j==4和j==8是为包含数字的列执行不同的代码 for(int i=0; i<model.getRowCount();i++){ for(int j=0; j<model.getColumnCount();j++){ if(j==4 || j==8){ excelWriter.write("\""+model.getValueAt(i, j) + "\t"+"\"");
for(int i=0; i<model.getRowCount();i++){
for(int j=0; j<model.getColumnCount();j++){
if(j==4 || j==8){
excelWriter.write("\""+model.getValueAt(i, j) + "\t"+"\"");
}
else{
excelWriter.write(model.getValueAt(i, j) + "\t");
}
}
excelWriter.write("\n");
}
它跳过编号为的列旁边的列
当我删除代码中的第二个“\”时,列的其余部分连接到带有数字的列
你知道我该怎么解决这个问题吗?
提前感谢我猜第二个
\
必须在\t
之前编写
等等。。。我已经创建了一个包含文本列和数字列的Excel工作表。然后我将该工作表导出到一个选项卡分隔的文件中。当我在文本编辑器中打开该文件时,任何类型的数字都不会转义。因此,我认为如果第二个
\
必须在\t
之前编写,那么您不需要这个
等等。。。我已经创建了一个包含文本列和数字列的Excel工作表。然后我将该工作表导出到一个选项卡分隔的文件中。当我在文本编辑器中打开该文件时,任何类型的数字都不会转义。所以我认为你不需要这个,如果你的意思可能是:
excelWriter.write("\"" + model.getValueAt(i, j) + "\"\t");
你可能是说:
excelWriter.write("\"" + model.getValueAt(i, j) + "\"\t");
例如,文件可以是.xsl或.xlsx
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JTable;
import javax.swing.table.TableModel;
class ExcelExporterTodayFxDeals {
ExcelExporterTodayFxDeals() {
}
public void exportTable(JTable table, File file) throws IOException {
TableModel model = table.getModel();
FileWriter out = new FileWriter(file);
String diakritika = "áäÁÄčČďĎéěÉĚíÍľĺĽĹňŇóôöőÓÔÖŐŕřŔŘšŠťŤúüůÚÜŮýÝžŽ";
String diakritikaBez = "aaAAcCdDeeEEiIllLLnNooooOOOOrrRRsStTuuuUUUyYzZ";
String novyPreklad = "";
String groupExport = "";
Integer remDia = 1;
for (int i = 0; i < (model.getColumnCount()); i++) {//* disable export from TableHeaders
groupExport = String.valueOf(model.getColumnName(i));
novyPreklad = groupExport;
if (groupExport != (null)) {
remDia = 1;
for (remDia = 0; remDia < (diakritika.length());) {
novyPreklad = diakritika.substring(1, 2);
novyPreklad = (diakritika.substring(remDia, (remDia + 1))).toString();
groupExport = groupExport.replace((diakritika.substring(remDia, (remDia + 1))),
diakritikaBez.substring(remDia, (remDia + 1)));
remDia++;
}
} else {
groupExport = "";
}
out.write(String.valueOf(groupExport) + "\t");
}
out.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < (model.getColumnCount()); j++) {//16
if (model.getValueAt(i, j) == null) {
out.write("null" + "\t");
} else {
groupExport = String.valueOf(model.getValueAt(i, j));
novyPreklad = groupExport;
if (groupExport != (null)) {
remDia = 1;
if (j == 0) {//Replace non_ACSII chars, not required in most cases
for (remDia = 0; remDia < (diakritika.length());) {
novyPreklad = diakritika.substring(1, 2);
novyPreklad = (diakritika.substring(remDia, (remDia + 1))).toString();
groupExport = groupExport.replace((diakritika.substring(remDia, (remDia + 1))),
diakritikaBez.substring(remDia, (remDia + 1)));
remDia++;
}
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
} else if (j == 5) {//Number Instance
if (((model.getValueAt(i, j)) != null) && ((model.getValueAt(i, j)) instanceof Number)) {
groupExport = String.format("%.2f", (Number) (model.getValueAt(i, j)));
}
groupExport = groupExport.replace(".", ",");
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
} else if (j == 10) {//Date instance
groupExport = groupExport.replace("-", "/");
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
}
} else {
groupExport = "";
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
}
}
}
out.write("\n");
}
out.close();
}
}
导入java.io.File;
导入java.io.FileWriter;
导入java.io.IOException;
导入javax.swing.JTable;
导入javax.swing.table.TableModel;
类ExcelExporterTodayXdeals{
ExcelExporterTodayxDeals(){
}
public void exportTable(JTable表、文件)引发IOException{
TableModel模型=table.getModel();
FileWriter out=新的FileWriter(文件);
弦乐日记;
字符串diakritikaBez=“aaaaaaccddeeeeillnnooooorrssttuuuuuyzz”;
字符串novyPreklad=“”;
字符串groupExport=“”;
整数remDia=1;
对于(int i=0;i<(model.getColumnCount());i++{/*禁用从TableHeader导出
groupExport=String.valueOf(model.getColumnName(i));
novyPreklad=组导出;
如果(groupExport!=(空)){
remDia=1;
对于(remDia=0;remDia<(diakritika.length());){
novyPreklad=二克里特卡子串(1,2);
novyPreklad=(diakritika.substring(remDia,(remDia+1))).toString();
groupExport=groupExport.replace((diakritika.substring)(remDia,(remDia+1)),
二克里提卡贝兹子串(remDia,(remDia+1));
remDia++;
}
}否则{
groupExport=“”;
}
out.write(String.valueOf(groupExport)+“\t”);
}
输出。写入(“\n”);
对于(int i=0;i
例如,文件可以是.xsl或.xlsx
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JTable;
import javax.swing.table.TableModel;
class ExcelExporterTodayFxDeals {
ExcelExporterTodayFxDeals() {
}
public void exportTable(JTable table, File file) throws IOException {
TableModel model = table.getModel();
FileWriter out = new FileWriter(file);
String diakritika = "áäÁÄčČďĎéěÉĚíÍľĺĽĹňŇóôöőÓÔÖŐŕřŔŘšŠťŤúüůÚÜŮýÝžŽ";
String diakritikaBez = "aaAAcCdDeeEEiIllLLnNooooOOOOrrRRsStTuuuUUUyYzZ";
String novyPreklad = "";
String groupExport = "";
Integer remDia = 1;
for (int i = 0; i < (model.getColumnCount()); i++) {//* disable export from TableHeaders
groupExport = String.valueOf(model.getColumnName(i));
novyPreklad = groupExport;
if (groupExport != (null)) {
remDia = 1;
for (remDia = 0; remDia < (diakritika.length());) {
novyPreklad = diakritika.substring(1, 2);
novyPreklad = (diakritika.substring(remDia, (remDia + 1))).toString();
groupExport = groupExport.replace((diakritika.substring(remDia, (remDia + 1))),
diakritikaBez.substring(remDia, (remDia + 1)));
remDia++;
}
} else {
groupExport = "";
}
out.write(String.valueOf(groupExport) + "\t");
}
out.write("\n");
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < (model.getColumnCount()); j++) {//16
if (model.getValueAt(i, j) == null) {
out.write("null" + "\t");
} else {
groupExport = String.valueOf(model.getValueAt(i, j));
novyPreklad = groupExport;
if (groupExport != (null)) {
remDia = 1;
if (j == 0) {//Replace non_ACSII chars, not required in most cases
for (remDia = 0; remDia < (diakritika.length());) {
novyPreklad = diakritika.substring(1, 2);
novyPreklad = (diakritika.substring(remDia, (remDia + 1))).toString();
groupExport = groupExport.replace((diakritika.substring(remDia, (remDia + 1))),
diakritikaBez.substring(remDia, (remDia + 1)));
remDia++;
}
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
} else if (j == 5) {//Number Instance
if (((model.getValueAt(i, j)) != null) && ((model.getValueAt(i, j)) instanceof Number)) {
groupExport = String.format("%.2f", (Number) (model.getValueAt(i, j)));
}
groupExport = groupExport.replace(".", ",");
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
} else if (j == 10) {//Date instance
groupExport = groupExport.replace("-", "/");
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
}
} else {
groupExport = "";
out.write(34);
out.write(String.valueOf(groupExport));
out.write(34);
out.write("\t");
}
}
}
out.write("\n");
}
out.close();
}
}
导入java.io.File;
导入java.io.FileWriter;
导入java.io.IOException;
导入javax.swing.JTable;
导入javax.swing.table.TableModel;
类ExcelExporterTodayXdeals{
ExcelExporterTodayxDeals(){
}
public void exportTable(JTable表、文件)引发IOException{
TableModel模型=table.getModel();
FileWriter out=新的FileWriter(文件);
弦乐日记;
字符串diakritikaBez=“aaAAcCdD