使用java代码将MySQL数据库导出到excel
我想将MySQL数据库导出为.xls或.txt格式。我如何用java实现它。我想做的是,在我的应用程序中有一个按钮,按下该按钮,我的数据库将导出到excel文件。使用java代码将MySQL数据库导出到excel,java,mysql,jexcelapi,Java,Mysql,Jexcelapi,我想将MySQL数据库导出为.xls或.txt格式。我如何用java实现它。我想做的是,在我的应用程序中有一个按钮,按下该按钮,我的数据库将导出到excel文件。 谢谢。对MySQL进行系统调用: mysql -e'SELECT * FROM table'>file.csv 导出整个数据库的最简单方法是使用本机数据库工具。看看这篇文章: 或者,您可以使用JDBC或ORM实现代码,这些代码连接到DB,使用您想要的任何格式读取和写入数据 您可以使用并生成任意格式的数据库。如果您使用的是str
谢谢。对MySQL进行系统调用:
mysql -e'SELECT * FROM table'>file.csv
导出整个数据库的最简单方法是使用本机数据库工具。看看这篇文章: 或者,您可以使用JDBC或ORM实现代码,这些代码连接到DB,使用您想要的任何格式读取和写入数据 您可以使用并生成任意格式的数据库。如果您使用的是struts2,则可以使用
datagrid
将其导出为CSV或Excel
您可能会发现它很有帮助:
SELECT ....... INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table
您可以使用和。使用此代码
它适用于.xls文件
package com.demo.export;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class dataExportService {
public void getDefendants(Connection con , String db) throws Exception {
@SuppressWarnings("unused")
Workbook readWorkbook = WorkbookFactory.create(new FileInputStream("C:\\Users\\CEPL\\Desktop\\test.xls") );
@SuppressWarnings("resource")
Workbook writeWorkbook = new HSSFWorkbook();
Sheet desSheet = writeWorkbook.createSheet("new sheet");
Statement stmt = null;
ResultSet rs = null;
try{
String query ="SELECT * FROM "+db;
stmt = con.createStatement();
rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
Row desRow1 = desSheet.createRow(0);
for(int col=0 ;col < columnsNumber;col++) {
Cell newpath = desRow1.createCell(col);
newpath.setCellValue(rsmd.getColumnLabel(col+1));
}
while(rs.next()) {
System.out.println("Row number" + rs.getRow() );
Row desRow = desSheet.createRow(rs.getRow());
for(int col=0 ;col < columnsNumber;col++) {
Cell newpath = desRow.createCell(col);
newpath.setCellValue(rs.getString(col+1));
}
FileOutputStream fileOut = new FileOutputStream("C:\\Users\\CEPL\\Desktop\\test.xls");
writeWorkbook.write(fileOut);
fileOut.close();
}
}
catch (SQLException e) {
System.out.println("Failed to get data from database");
}
}
}
package com.demo.export;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.sql.Connection;
导入java.sql.ResultSet;
导入java.sql.ResultSetMetaData;
导入java.sql.SQLException;
导入java.sql.Statement;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.ss.usermodel.Sheet;
导入org.apache.poi.ss.usermodel.工作簿;
导入org.apache.poi.ss.usermodel.WorkbookFactory;
公共类数据导出服务{
public void GetDefendents(连接con,字符串db)引发异常{
@抑制警告(“未使用”)
工作簿readWorkbook=WorkbookFactory.create(新文件输入流(“C:\\Users\\CEPL\\Desktop\\test.xls”);
@抑制警告(“资源”)
工作簿writeWorkbook=新的HSSFWorkbook();
Sheet desSheet=writeWorkbook.createSheet(“新工作表”);
语句stmt=null;
结果集rs=null;
试一试{
String query=“SELECT*FROM”+db;
stmt=con.createStatement();
rs=stmt.executeQuery(查询);
ResultSetMetaData rsmd=rs.getMetaData();
int columnsumber=rsmd.getColumnCount();
行desRow1=desSheet.createRow(0);
for(int col=0;col
可以接受.csv文件吗?它们可以在excel中打开,但没有格式,也不允许包含多个表的工作簿。请尝试此操作。这不是CSV。这将创建以制表符分隔的值。但你是对的:这个文件可以导入Excel。@AlexR讽刺的是,CSV不必用逗号分隔: