java中如何讲Excel中的数据导入到Mysql
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何讲Excel中的数据导入到Mysql相关的知识,希望对你有一定的参考价值。
刚毕业啥都不懂,希望有源码,有注释,谢谢
你可以用JXL做。读到数据库,可以通过jxl来实现,可以把EXCEL文档上传到系统的上传目录下后,然后再取得这个文件,或者直接取得这个文件,对这个文件进行操作。例子:
public void addCustomerAssign(File file,SysExpo expo,SysUser user1)//添加客服中心数据
jxl.Workbook rwb = null;
try
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook
//从输入流创建Workbook
InputStream is = new FileInputStream(file);
rwb = Workbook.getWorkbook(is);
String createTime = DateUtil.getDateTime( "yyyy-MM-dd HH:mm ",new Date()).toString();
//Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下标是从0开始
//获取第一张Sheet表
Sheet rs = rwb.getSheet(0);
//获取Sheet表中所包含的总列数
// int rsColumns = rs.getColumns();
//获取Sheet表中所包含的总行数
int rsRows = rs.getRows();
//获取指定单元格的对象引用
// rs.getCell(列,行);
for(int i=1;i <rsRows;i++)//如第一行为属性项则从第二行开始取数据(int i=0 ;i <rsRows;i++)
//for(int j=0;j <rsColumns;j++)
//Cell cell = rs.getCell(j,i);
// System.out.print(cell.getContents()+ " ");
//
//Cell cell = rs.getCell(0,i).getContents()+ " ";
String cell1= rs.getCell(0,i).getContents()+ " ";//序号
String cell7 = rs.getCell(6,i).getContents()+ " ";//公司名称
if(cell1!=null&&!cell1.equals( " ")&&cell7!=null&&!cell7.equals( " "))//判断当前行是否为有效行 是插入否找下行
Company company = new Company();
company.setName(rs.getCell(0,i).getContents()+ " ");//1名称
company.setManager(rs.getCell(1,i).getContents()+ " ");//2法人
catch(Exception e)
e.printStackTrace();
finally
//操作完成时,关闭对象,释放占用的内存空间
rwb.close();
参考技术A 使用jxl组件,非常简单方便
通过jxl组件从Excel中获取到数据,然后通过JDBC等任何你所熟悉的方式连接到数据库,并将从Excel中获取的数据insert到mysql数据库中即可 参考技术B POI是可以的 不过巨麻烦,而且POI是一个重量级组件。。不推荐,建议用mysql自带的功能来导出,你可以在java中执行:
SELECT * INTO OUTFILE'd:/test.xls' FROM youtablename 参考技术C 是将excel中的数据导入到MySQL数据库吗?
方法很多的,最笨最麻烦的就是手工导入。
要是用插件的话,也有很多。
我最近在研究poi,这东西挺好用的,是个开源项目,目前还在发展当中,新的功能将会陆续诞生和完善。对excel,它做的已经很不错了,可以说着些导出对象中,excel最完善!
如果你有时间可以研究一下poi,毕竟自己学习了,才是自己的。
要是你急需源码,那也可以啊,只是我不知道你的需求,还有你的excel表中的数据,等等。所以,.....
仅供参考! 参考技术D 第三方类库 poi
写个jdbc小程序。。。有一次我也这么干的一个excel 9000多条数据手动录入
会死人的
excel里是什么样的数据呀。。。
使用java将数据库中的数据导出到excel中
我现在要实现的是使用java语句实现蒋mysql数据库中数据导出到excel中来,另外的功能是将excel中的数据导入到数据库中,求教高手,最好是程序,我用的包是jxl.jar包.
用jxl来实现import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;public String importEnter(HttpServletRequest request)
Connection conn = null;
PreparedStatement ps = null;
OpenDbBean db = new OpenDbBean();
String message = "";
try
ServletInputStream is = request.getInputStream();
byte[] junk = new byte[1024];
int bytesRead = 0;
//去掉浏览器发送的垃圾信息
bytesRead = is.readLine(junk, 0, junk.length);
bytesRead = is.readLine(junk, 0, junk.length);
bytesRead = is.readLine(junk, 0, junk.length);
bytesRead = is.readLine(junk, 0, junk.length);
Workbook workbook = Workbook.getWorkbook(is);
//取得第一个工作录
Sheet sheet = workbook.getSheet(0);
//从第二行开始取数据并处理
Enter enter = new Enter();
//连接数据库
conn = db.getConnection();
String sql =
"insert into haocai_enter(enter_id,enter_time,amount,jsr,type_id,xh)"
+ " values(s_enter_id.nextval,to_date(?,'dd/mm/yyyy'),?,?,?,?)";
ps = conn.prepareStatement(sql);
int okCount = 0;
ArrayList errorRows = new ArrayList();
for (int i = 1; i < sheet.getRows(); i++)
DB mydb = new DB();
Cell[] c = sheet.getRow(i);
String type_id = enter.getTypeIdByPm(c[PM].getContents());
if (type_id != null)
//设置入库数据
ps.setString(1, c[ENTER_TIME].getContents());
ps.setString(2, c[AMOUNT].getContents());
ps.setString(3, c[JSR].getContents());
ps.setString(4, type_id);
ps.setString(5, c[XH].getContents());
ps.addBatch();
okCount++;
else
message += "<br>第" + i + "行 " + c[PM].getContents() + " 导入失败";
//执行该批过程
if (okCount > 0)
ps.executeBatch();
message += "<br>成功导入" + okCount + " 行";
workbook.close();
catch (Exception e)
System.out.println(e.getMessage());
message += "<br>" + e.getMessage();
finally
try
db.CleanConnection(conn, ps, null);
catch (SQLException e1)
e1.printStackTrace();
return message;
用jxl.jar或者poi都可以,poi可以到apache网站上去下。
利用Java 创建和读取Excel文档
为了保证示例程序的运行,必须安装Java 2 sdk1.4.0 和Jakarta POI,Jakarta POI的Web站点是: http://jakarta.apache.org/poi/
示例1将演示如何利用Jakarta POI API 创建Excel 文档。
示例1程序如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileOutputStream;
public class CreateXL
/** Excel 文件要存放的位置,假定在D盘JTest目录下*/
public static String outputFile="D:/JTest/ gongye.xls";
public static void main(String argv[])
try
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标");
HSSFSheet sheet = workbook.createSheet();
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short)0);
//在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("增加值");
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成...");
catch(Exception e)
System.out.println("已运行 xlCreate() : " + e );
读取Excel文档中的数据
示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为gongye.xls的Excel文件。
示例2程序如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL
/** Excel文件的存放位置。注意是正斜线*/
public static String fileToBeRead="D:/JTest/ gongye.xls";
public static void main(String argv[])
try
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
// 创建对工作表的引用。
// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
HSSFSheet sheet = workbook.getSheet("Sheet1");
// 也可用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
// 读取左上端单元
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
// 输出单元内容,cell.getStringCellValue()就是取所在单元的值
System.out.println("左上端单元是: " + cell.getStringCellValue());
catch(Exception e)
System.out.println("已运行xlRead() : " + e );
设置单元格格式
在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java
中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式:
1、创建字体,设置其为红色、粗体:
HSSFFont font = workbook.createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
2、创建格式
HSSFCellStyle cellStyle= workbook.createCellStyle();
cellStyle.setFont(font);
3、应用格式
HSSFCell cell = row.createCell((short) 0);
cell.setCellStyle(cellStyle);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("标题 ");
总之,如本篇文章所演示的一样,Java程序员不必担心Excel工作表中的数据了,利用Jakarta POI API,
我们就可以轻易的在程序中存取Excel文档。
参考资料:开发者在线http://www.builder.com.cn/
参考技术A 楼上很详细啊~ 留个脚印当书签~以上是关于java中如何讲Excel中的数据导入到Mysql的主要内容,如果未能解决你的问题,请参考以下文章
java将excel文件中的数据导入到mySql数据库中 完整代码
如何用Java实现把excel表中的数据导入到mysql数据库已有的表中?
java如何把excel内容导入到mysql数据库,数据库的列名就是excel的列名