package com.action.payslip;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import jxl.Cell;
import jxl.CellType;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
public class PayslipExcelImport {
static String createTableSql = "";// 创建数据库的sql
static String colType = "TEXT";// 字段类型
static String key = "id";// 主键
static String charSet = "utf8";// 表格字符类型
static String ENGINE = "InnoDB";// 表格类型
static String tableName = "tempExcelToMysql";// 表名称
static String colName = "col";// 默认字段名
static Connection conn = null;
public static void main(String args[]) {
try {
// 构建Workbook对象, 只读Workbook对象
// 直接从本地文件创建Workbook
// 从输入流创建Workbook
System.out.println("start load file-------------------------");
InputStream is = new FileInputStream("D:/user.xls");// 创建输入
jxl.Workbook rwb = Workbook.getWorkbook(is);
Sheet rs = rwb.getSheet(0); // 读取第一个sheet
int colNum = rs.getColumns();// 列数
int rowNum = rs.getRows();// 行数
System.out.println("colNum rowNum------------------" + rowNum + ","
+ colNum);
System.out.println("start create base-------------------------");
getConntion();
String tableSql = getCreateTableSql(rowNum, colNum);
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
st.execute(tableSql);
st.close();
System.out.println("create base end -------------------------");
String sql = getColName(rowNum, colNum);
PreparedStatement ps = null;
String strValue = "";
ps = conn.prepareStatement(sql);
for (int i = 1; i < rowNum; i++) {
strValue = "";
for (int j = 0; j < colNum; j++) {
Cell c = rs.getCell(j, i);
strValue = c.getContents();
ps.setString(j + 1, strValue);
}
ps.addBatch();
}
ps.executeBatch();
conn.commit();
if (ps != null) {
ps.close();
}
System.out.println(" insert end-------------------------");
close();
} catch (Exception e) {
e.printStackTrace();
}
}
static String getCreateTableSql(int rowNum, int colNum) {
// 可以做成可配置文件
createTableSql = "create table " + tableName + "( `" + key
+ "` bigint(12) NOT NULL auto_increment, ";
String temp = "";
for (int j = 0; j < colNum; j++) {
temp = temp + "`" + colName + j + "` " + colType + " DEFAULT NULL,";
}
createTableSql = createTableSql + " " + temp + " PRIMARY KEY (`" + key
+ "`)" + ") ENGINE=" + ENGINE + " DEFAULT CHARSET=" + charSet
+ ";";
return createTableSql;
}
static String getColName(int rowNum, int colNum) {
// 可以做成可配置文件
String colSql = "";
String colValue = "";
for (int j = 0; j < colNum; j++) {
colSql = colSql + "`" + colName + j + "`,";
colValue = colValue + "" + "?,";
}
return "insert into " + tableName + " ("
+ colSql.substring(0, colSql.lastIndexOf(",")) + ")values("
+ colValue.substring(0, colValue.lastIndexOf(",")) + ")";
}
static void getConntion() {
try {
String driver_class = "com.mysql.jdbc.Driver";
String connection_url = "jdbc:mysql://localhost:3306/jeecg?useUnicode=true&characterEncoding=utf-8";
String user_name = "root";
String db_password = "root";
Class.forName(driver_class);
conn = DriverManager.getConnection(connection_url, user_name,
db_password);
conn.setAutoCommit(false);
} catch (Exception e) {
e.printStackTrace();
}
}
static void close() {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
"Java实现Excel导入功能并保存到数据库" 以下是根据给定的文件信息生成的相关知识点: 知识点1:Java Web开发框架SpringMVC 在本实例中,使用了SpringMVC框架来实现Web应用程序。SpringMVC是一种基于Java的Web...
Java实现Excel导入导出数据库的方法示例主要介绍了Java实现Excel导入导出数据库的方法,结合实例形式分析了java针对Excel的读写及数据库操作相关实现技巧。该示例中,主要讲解了如何将Excel文件导入到数据库中,并...
在本项目中,我们结合了POI库和XML技术来实现Excel数据的验证与导入数据库。 首先,Apache POI提供了HSSF和XSSF两个API,分别用于处理老版本的BIFF8格式(.xls)和新版本的OOXML格式(.xlsx)。在这个案例中,我们...
对于数据导入数据库的需求,可以先使用POI读取Excel数据,然后通过JDBC接口将数据插入到数据库中,这对于数据迁移或批量处理非常有用。 在实际项目中,这三个技术的结合可以实现这样的场景:用户在网页上上传一个...
在Java编程中,将Excel数据导入数据库是一项常见的任务,尤其在数据处理和分析场景中。以下是如何使用Java从Excel文件读取数据并将其存入数据库的详细步骤。 首先,我们需要一个能够读取Excel文件的库,例如...
总之,这个案例展示了如何结合使用Apache POI和Java的动态类生成功能,来处理Excel数据并将其导入数据库,同时提供了代码的灵活性和可扩展性。通过深入了解和实践这些技术,开发者可以更高效地处理数据,提升项目的...
在将数据导入数据库之前,可能需要对数据进行清洗、格式转换等预处理。例如,处理空值、转换数据类型等。 ```python # 清洗数据,处理缺失值 data.dropna(inplace=True) # 转换数据类型,假设列'column_name'需要...
综上所述,"EXCEL导入导出完整实例"涵盖了Excel数据操作的各个方面,包括基础的导入导出、数据库连接、VBA编程以及高级的数据处理技巧。通过学习这些知识,你可以提高工作效率,更好地管理和分析数据。
通过以上步骤,我们可以将Excel数据顺利地导入到数据库中,这个实例是一个很好的学习资源,帮助开发者了解和掌握数据导入的具体实践。在实际项目中,根据需求的不同,可能还需要考虑数据验证、并发控制、性能优化等...
Java中Excel数据导入数据库的优点: 1. 高效:使用Java语言和相关的Jar包,可以快速地读取Excel文件中的数据,并将其导入到数据库中。 2. 方便:本文的方法可以使读者轻松地将Excel数据导入到数据库中,无需进行...
在Java编程环境中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理、数据分析或者系统集成时。本文将详细讲解如何使用Java实现这一过程,包括读取Excel文件、建立对应的MySQL表结构以及数据的迁移。...
这种Excel导入导出功能在许多场景下都非常实用,例如: - 数据分析:将Excel数据加载到程序中进行计算或处理。 - 数据迁移:将数据库或其他系统中的数据导出为Excel,便于用户查看和编辑,然后再导入回系统。 - ...
在这个"通用excel导入/导出 (poi)"的示例中,我们主要关注的是Excel文件的处理,特别是如何利用POI库进行数据的导入和导出。下面将详细介绍这个过程中的关键知识点。 首先,让我们了解一下Apache POI。它是Apache...
根据提供的文件信息,这是一篇关于使用Java编程语言将Excel数据导入MySQL数据库的教程。这个过程通常涉及到以下几个关键知识点: 1. Java编程基础:Java是一种广泛使用的面向对象的编程语言,用于开发各种应用程序...
在Java编程中,处理Excel数据的导入和导出是一项常见的任务,特别是在数据分析、报表生成以及数据交换等场景。本文将详细讲解如何使用Java操作Excel数据,并重点探讨Java流的读取技术。 首先,Java中处理Excel文件...
本实例将详细介绍如何使用Java来实现数据导入到Excel表格的操作。 首先,我们需要引入处理Excel文件的Java库,如Apache POI。Apache POI是一个开源项目,它允许Java开发者读写Microsoft Office格式的文件,包括...
下面,我们将深入探讨Excel导入数据库的过程,涉及的相关知识点包括Excel文件结构、数据清洗、数据库连接以及导入操作。 首先,我们需要了解Excel文件的基本结构。Excel文件通常由工作簿(Workbook)组成,每个工作...
在Delphi编程环境中,开发人员经常需要处理数据的导入导出功能,特别是在报表生成与分析时,Excel作为广泛使用的电子表格软件,其导入导出功能是必不可少的。本实例将探讨如何在Delphi中实现Excel文件的读写操作,...
- "Excel导入导出":这可能是另一个实例,专门处理导入和导出数据到Excel的过程,比如从数据库中导出数据或从Excel文件导入数据到数据库。 - "ExcelDemo":这可能是一个简单的示例项目,展示了如何使用Java读取、...
对于“从excel导入到数据库中”,这个过程通常涉及以下步骤: 1. 使用POI读取Excel文件中的数据,这包括打开文件、获取工作表、遍历单元格并提取值。 2. 将这些数据转换成适合数据库存储的格式,可能需要进行类型...