快速学习:使用Swing导出Excel文件到数据库。 (swing从数据库中导出excel)
快速学习:使用Swing导出Excel文件到数据库
在日常工作中,经常需要将Excel文件中的数据导入到数据库中。手动操作费时费力,因此我们需要一种简单、快速的方法来实现导出Excel文件到数据库。本文将介绍如何使用Swing实现这一功能。
一、准备工作
在使用Swing导出Excel文件到数据库之前,我们需要准备好以下工具和环境:
1. JDK:确保您已经安装了最新版本的Java Development Kit(JDK)。
2. Eclipse:Eclipse是一种广泛使用的Java IDE,可以用于开发Java应用程序。
3. MySQL数据库:在本教程中,我们将使用MySQL数据库来演示将Excel数据导入数据库。
4. poi-3.17.jar:这是Apache POI的最新版本,我们需要使用它来读取Excel文件。
二、创建GUI
我们需要创建一个Graphical User Interface(GUI)来操作我们的代码。使用Swing可以轻松创建GUI。
在Eclipse中创建一个新的Java项目,并在其中创建一个新的类,命名为ExcelToDatabase.java。在该文件中添加以下代码:
“`
import javax.swing.*;
import java.awt.*;
public class ExcelToDatabase extends JFrame {
public ExcelToDatabase() {
setTitle(“Excel To Database”);
setSize(300, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
// Add components to the frame
JLabel label1 = new JLabel(“Enter Excel file path:”);
JTextField textField1 = new JTextField();
JLabel label2 = new JLabel(“Enter database name:”);
JTextField textField2 = new JTextField();
JButton button1 = new JButton(“Export”);
JButton button2 = new JButton(“Exit”);
JPanel panel1 = new JPanel(new GridLayout(2, 2));
panel1.add(label1);
panel1.add(textField1);
panel1.add(label2);
panel1.add(textField2);
JPanel panel2 = new JPanel(new FlowLayout());
panel2.add(button1);
panel2.add(button2);
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);
setVisible(true);
}
public static void mn(String[] args) {
new ExcelToDatabase();
}
}
“`
上述代码创建了一个GUI窗口,在其上包含两个文本框和两个按钮。它的布局使用了边界布局管理器(BorderLayout)。
三、将Excel文件读入内存
在导入Excel文件之前,我们需要将其读入到内存中。为此,我们需要使用Apache POI。
我们需要将poi-3.17.jar文件添加到我们的项目中。选择File > Properties > Java Build Path > Libraries,然后点击Add JARs,在您的项目文件夹中选择poi-3.17.jar文件。现在我们可以使用POI库中的类。
在ExcelToDatabase.java文件中添加以下代码来读取Excel文件:
“`
private static void readExcel(String filePath) {
try {
FileInputStream file = new FileInputStream(new File(filePath));
// Create a workbook instance
Workbook workbook = new XSSFWorkbook(file);
// Get the first sheet
Sheet sheet = workbook.getSheetAt(0);
// Loop through rows
Iterator rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through cells
Iterator cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
System.out.print(cell.toString() + “\t”);
}
System.out.println(“”);
}
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
“`
该方法接受Excel文件的路径作为参数,并打印出所有单元格的值。我们将在下一步中将这些值导入到数据库中。现在运行程序并输入Excel文件的路径,以确保readExcel()方法可以正常读取数据。
四、将Excel数据插入到数据库中
现在,我们已经读取了Excel文件的所有数据,并将其保存在内存中。接下来,我们需要将这些数据插入到数据库中。
在ExcelToDatabase.java文件中添加以下代码以连接到MySQL数据库:
“`
private static void insertIntoDatabase(String databaseName, List rows) {
String url = “jdbc:mysql://localhost/” + databaseName;
String username = “root”;
String password = “”;
try (Connection conn = DriverManager.getConnection(url, username, password)) {
String sql = “INSERT INTO products (name, price, quantity) VALUES (?, ?, ?)”;
PreparedStatement statement = conn.prepareStatement(sql);
for (Object[] row : rows) {
statement.setString(1, (String) row[0]);
statement.setDouble(2, (Double) row[1]);
statement.setInt(3, (Integer) row[2]);
statement.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
“`
此方法需要数据库名称和行列表作为参数。我们使用MySQL服务器连接到数据库并将数据插入到名为“产品”的表中。在这种情况下,表有一个名称,一个价格和一个数量列。
我们需要将行列表传递给该方法,该列表由每个行的值组成。
五、将数据导出到数据库
现在,我们已经准备好了将Excel数据导入到MySQL数据库中的所有要素。在ExcelToDatabase.java文件中添加以下代码,将GUI组件与我们之前创建的方法相结合:
“`
public ExcelToDatabase() {
// …
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String filePath = textField1.getText();
String databaseName = textField2.getText();
List rows = new ArrayList();
try {
FileInputStream file = new FileInputStream(new File(filePath));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0);
Iterator rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator cellIterator = row.cellIterator();
List rowValues = new ArrayList();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case STRING:
rowValues.add(cell.getStringCellValue());
break;
case NUMERIC:
rowValues.add(cell.getNumericCellValue());
break;
case BOOLEAN:
rowValues.add(cell.getBooleanCellValue());
break;
default:
rowValues.add(null);
break;
}
}
Object[] rowArray = new Object[rowValues.size()];
rowArray = rowValues.toArray(rowArray);
rows.add(rowArray);
}
insertIntoDatabase(databaseName, rows);
file.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
“`
此代码使用ActionListener监听器为按钮添加操作。单击Export按钮将读取Excel文件,将数据存储在内存中,然后将数据插入到MySQL数据库中。如果单击Exit按钮,则程序将退出。
六、结论
相关问题拓展阅读:
- 怎么用JAVA链接数据库ORACLE实现导出一个表
怎么用JAVA链接数据库ORACLE实现导出一个表
你可以用 swing 或 jsp 来做:
swing:
我写的样例:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.awt.*;
import javax.swing.*;
public class data extends JFrame implements ActionListener{
JButton select,print;
JTable table;
Object body=new Object;
String title={“编号”,”用户名”,”密码”,”邮箱”};
Connection conn;
Statement stat;
ResultSet rs;
JTabbedPane tp;
public data() {
super(“用户信息”);
this.setSize(700,500);
this.setLocation(500,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel ps=new JPanel();
select=new JButton(“查询”);
print=new JButton(“打印预览”);
select.addActionListener(this);
print.addActionListener(this);
ps.add(select);
ps.add(print);
table=new JTable(body,title);
tp=new JTabbedPane();
tp.add(“t41c_user表”,new crollPane(table));
this.getContentPane().add(tp,”Center”);
this.getContentPane().add(ps,”South”);
this.setVisible(true);
this.connection();
}
public void connection(){
try {
Class.forName(“oracle.jdbc.driver.OracleDriver”);
String url=”jdbc:oracle:thin:@*.*.*.*:1521:orcl”;
conn=DriverManager.getConnection(url,”username”,”password”);
stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ON);
} catch (Exception ex) {
}
}
public static void main(String args) {
data data= new data();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==select)
{select();}
else if(e.getSource()==print)
{print();}
}
public void print()
{}
public void select() {
try {
for(int x=0;x
body=null;
body=null;
body=null;
body=null;
}
int i=0;
rs=stat.executeQuery(“select * from t41c_user”);
while(rs.next()){
body=rs.getInt(1);
body=rs.getString(2);
body=rs.getString(3);
body=rs.getString(4);
i=i+1;
}
this.repaint();
} catch (SQLException ex) {
}
}
}
用
jsp:
swing从数据库中导出excel的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于swing从数据库中导出excel,快速学习:使用Swing导出Excel文件到数据库。,怎么用JAVA链接数据库ORACLE实现导出一个表的信息别忘了在本站进行查找喔。
数据库运维技术服务 » 快速学习:使用Swing导出Excel文件到数据库。 (swing从数据库中导出excel)
管理员 普通
分享到:
相关推荐
Oracle数据库实例名修改教程:轻松完成重命名 (oracle改数据库实例名)
轻松获取MSDE数据库下载海量资源随意下载 (msde数据库下载)
深入探索数据库中的常用时间函数 (数据库函数时间函数)
修改数据库命令指南 (修改数据库使用的命令)
MFC ADO 数据库关联实现技巧 (mfc ado关联数据库)
利用调查问卷数据库实现数据分析与应用 (引用调查问卷的数据库)
如何在日历中显示PHP数据库查询到的数据 (php 数据库查查出的数据如何显示在日历)
Oracle数据库中汉字长度限制及解决方案 (orcle数据库汉字长度)
随机文章
如何轻松学会查看Java代码中的数据库 (如何查看java代码的数据库)
掌握技巧:数据库用户如何成为DBA? (数据库如何用户赋dba的身份)
使用 GridView 控件展示数据库数据 (gridview 数据库)
服务器和数据库宕机,业务中断,如何应对? (服务器和数据库断了)
什么是db文件,它与什么有关? (db文件 数据库文件)
如何判断SQL数据库类型是否为空? (sql数据库类型是否为空)
最近更新
标签
Linux Linux教程 Linux资讯 MacOS MacOS教程 MacOS资讯 MongoDB MongoDB教程 MongoDB资讯 MSSQL MSSQL错误 MySQL mysql教程 MySQL维护 MySQL资讯 Neo4j Neo4j教程 Neo4j资讯 ORACLE Oracle优化 oracle内部视图 oracle参数 oracle开发 oracle异常修复 oracle故障处理 oracle教程 oracle维护 oracle视图 ORACLE资讯 oracle远程维护 ORA错误码 Redis Redis教程 Redis资讯 SQLServer SQLServer报错 SQLServer教程 SQLServer资讯 SQL修复 SQL异常 SQL远程处理 Windows 技术文档 操作系统 数据库
- 登录
- 注册
安全登录 立即注册 忘记密码?
香港服务器首选后浪云,2H2G首月10元开通。
后浪云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。