快速学习:使用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) 分享到: 上一篇
数据库管理:先分表,后分库方案的优劣解析 (数据库 先分表 后分库)
下一篇
MySQL数据库如何设置默认主机名? (数据库默认主机名)

相关推荐

弹性云VS云主机:哪一个更适合你的企业需求? (弹性云和云主机)

轻松解决!录像机硬盘数据恢复技巧揭秘 (录像机硬盘数据恢复)

弹性云服务器:稳定、可靠的云计算选择 (弹性云服务器的稳定可靠)

数据库更新维护中,处于Restricting状态 (当前数据库处于Restring)

停机维护时,应该怎么处理?如何应对服务器主机停机维护? (当服务器的主机)

硬盘神器,让数据弥补失去的遗憾——硬盘数据恢复 (强大的硬盘数据恢复)

解决数据丢失风险,禁止强行停止收缩数据库 (强行停止收缩数据库)

主机脱机,怎么办?故障排查指南 (当前操作主机脱机)

随机文章
  • MySQL关闭二进制日志,如何操作(mysql不开二进制)
  • 不建议使用MySQL进行链表查询(mysql不建议链表查询)
  • MySQL端口未开启引发的问题(mysql不开启端口)
  • MySQL优化建议少建索引(mysql 不建议建索引)
  • 谨慎使用MySQL索引不宜滥用(mysql不建议索引)
  • MySQL优化建议避免使用表分区(MySQL不建议表分区)
  • MySQL使用视图存在风险,不建议长期使用(mysql不建议用视图)
  • Mysql 数据库最新趋势为什么不再建议使用视图(mysql不建议用视图)
  • 怎么处理MySQL不开启的问题(mysql不开启)
  • MySQL关闭事务的影响及解决方案(mysql 不开启事务)
最近更新
  • Redis 为何可用于验证码的存取(验证码放redis吗)
  • 串MSSQL中实现字符串拼接的方法简介(mssql 拼接字符)
  • 如何使用MSSQL实例名连接数据库(mssql实例名连接)
  • MSSQL安装:使用命令行下载(mssql下载命令)
  • 启动项目遇到Redis报错,怎么办?(项目启动redis报错)
  • mssql2012秘钥精选:完美激活SQL Server 2012(mssql2012秘钥)
  • MSSQL数据库中的数字均匀分配(mssql数字均分)
  • MSSQL默认排序调整:一个正确的示范(mssql修改 默认排序)
  • 开数据库MSSQL命令操作指南:如何打开数据库(mssql命令如何打)
  • MSSQL中限制用户访问权限的方法(limit改成mssql)
  • 标签

    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 技术文档 操作系统 数据库

    技术标签:安装配置、性能优化、备份恢复、异常处理、数据迁移、咨询服务。

    本站导航
    • 服务范围
    • 关于我们
    • 隐私政策
    技术文章
    • 数据库技术
    • 操作系统技术
    • 教程服务
    快速搜索

    数据恢复、异常处理、MySQL、Oracle

    本站部分资源来自互联网收集,仅供用于学习和交流,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站站长删除
    © 2020 Theme by – 数据服务 . All rights reserved 苏ICP备15021567号

    • 登录
    • 注册

    安全登录 立即注册 忘记密码?

    版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
    文章名称:《快速学习:使用Swing导出Excel文件到数据库。 (swing从数据库中导出excel)》
    文章链接:https://zhuji.vsping.com/137904.html
    本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。