java中xlsx导入mysql的简单介绍

本文目录一览:

java如何把excel内容导入到mysql数据库,数据库的列名就是excel的列名

1、添加POI jar包到项目的lib目录下-

2、Excel文件目录:d://excel.xls-

3、数据库字段为:num1 num2 num3 num4 num5 num6-

4、数据库名:blog-

5、表名:test-

6、编写类:连接mysql的字符串方法、插入的方法、实体类–

import java.io.FileInputStream;-

import java.io.FileNotFoundException;-

import java.io.IOException;-

import org.apache.commons.logging.Log;-

import org.apache.commons.logging.LogFactory;-

import org.apache.poi.hssf.usermodel.HSSFCell;-

import org.apache.poi.hssf.usermodel.HSSFRow;-

import org.apache.poi.hssf.usermodel.HSSFSheet;-

import org.apache.poi.hssf.usermodel.HSSFWorkbook;-

public class TestExcel {-

//记录类的输出信息-

static Log log = LogFactory.getLog(TestExcel.class); –

//获取Excel文档的路径-

public static String filePath = “D://excel.xls”;-

public static void main(String[] args) {-

try {-

// 创建对Excel工作簿文件的引用-

HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));-

// 在Excel文档中,第一张工作表的缺省索引是0,-

// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);-

HSSFSheet sheet = wookbook.getSheet(“Sheet1”);-

//获取到Excel文件中的所有行数-

int rows = sheet.getPhysicalNumberOfRows();-

//遍历行-

for (int i = 0; i rows; i++) {-

// 读取左上端单元格-

HSSFRow row = sheet.getRow(i);-

// 行不为空-

if (row != null) {-

//获取到Excel文件中的所有的列-

int cells = row.getPhysicalNumberOfCells();-

String value = “”; –

//遍历列-

for (int j = 0; j cells; j++) {-

//获取到列的值-

HSSFCell cell = row.getCell(j);-

if (cell != null) {-

switch (cell.getCellType()) {-

case HSSFCell.CELL_TYPE_FORMULA:-

break;-

case HSSFCell.CELL_TYPE_NUMERIC:-

value += cell.getNumericCellValue() + “,”; –

break; –

case HSSFCell.CELL_TYPE_STRING:-

value += cell.getStringCellValue() + “,”;-

break;-

default:-

value += “0”;-

break;-

}-

} –

}-

// 将数据插入到mysql数据库中-

String[] val = value.split(“,”);-

TestEntity entity = new TestEntity();-

entity.setNum1(val[0]);-

entity.setNum2(val[1]);-

entity.setNum3(val[2]);-

entity.setNum4(val[3]);-

entity.setNum5(val[4]);-

entity.setNum6(val[5]);-

TestMethod method = new TestMethod();-

method.Add(entity);-

}-

}-

} catch (FileNotFoundException e) {-

e.printStackTrace();-

} catch (IOException e) {-

e.printStackTrace();-

}-

}-

}-

如何用java实现把excel表中的数据导入到mysql数据库已有的表中

package com.cn.util;  

  

import java.io.FileNotFoundException;  

import java.io.IOException;  

import java.io.InputStream;  

import java.util.ArrayList;  

import java.util.List;  

  

import org.apache.log4j.Logger;  

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.xssf.usermodel.XSSFWorkbook;  

import org.springframework.web.multipart.MultipartFile;  

/** 

 * excel读写工具类 

 * @author sun.kai 

 */  

public class POIUtil {  

    private static Logger logger  = Logger.getLogger(POIUtil.class);  

    private final static String xls = “xls”;  

    private final static String xlsx = “xlsx”;  

      

    /** 

     * 读入excel文件,解析后返回 

     * @param file 

     * @throws IOException  

     */  

    public static ListString[] readExcel(MultipartFile file) throws IOException{  

        //检查文件  

        checkFile(file);  

        //获得Workbook工作薄对象  

        Workbook workbook = getWorkBook(file);  

        //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回  

        ListString[] list = new ArrayListString[]();  

        if(workbook != null){  

            for(int sheetNum = 0;sheetNum  workbook.getNumberOfSheets();sheetNum++){  

                //获得当前sheet工作表  

                Sheet sheet = workbook.getSheetAt(sheetNum);  

                if(sheet == null){  

                    continue;  

                }  

                //获得当前sheet的开始行  

                int firstRowNum  = sheet.getFirstRowNum();  

                //获得当前sheet的结束行  

                int lastRowNum = sheet.getLastRowNum();  

                //循环除了第一行的所有行  

                for(int rowNum = firstRowNum+1;rowNum = lastRowNum;rowNum++){  

                    //获得当前行  

                    Row row = sheet.getRow(rowNum);  

                    if(row == null){  

                        continue;  

                    }  

                    //获得当前行的开始列  

                    int firstCellNum = row.getFirstCellNum();  

                    //获得当前行的列数  

                    int lastCellNum = row.getPhysicalNumberOfCells();  

                    String[] cells = new String[row.getPhysicalNumberOfCells()];  

                    //循环当前行  

                    for(int cellNum = firstCellNum; cellNum  lastCellNum;cellNum++){  

                        Cell cell = row.getCell(cellNum);  

                        cells[cellNum] = getCellValue(cell);  

                    }  

                    list.add(cells);  

                }  

            }  

            workbook.close();  

        }  

        return list;  

    }  

    public static void checkFile(MultipartFile file) throws IOException{  

        //判断文件是否存在  

        if(null == file){  

            logger.error(“文件不存在!”);  

            throw new FileNotFoundException(“文件不存在!”);  

        }  

        //获得文件名  

        String fileName = file.getOriginalFilename();  

        //判断文件是否是excel文件  

        if(!fileName.endsWith(xls)  !fileName.endsWith(xlsx)){  

            logger.error(fileName + “不是excel文件”);  

            throw new IOException(fileName + “不是excel文件”);  

        }  

    }  

    public static Workbook getWorkBook(MultipartFile file) {  

        //获得文件名  

        String fileName = file.getOriginalFilename();  

        //创建Workbook工作薄对象,表示整个excel  

        Workbook workbook = null;  

        try {  

            //获取excel文件的io流  

            InputStream is = file.getInputStream();  

            //根据文件后缀名不同(xls和xlsx)获得不同的Workbook实现类对象  

            if(fileName.endsWith(xls)){  

                //2003  

                workbook = new HSSFWorkbook(is);  

            }else if(fileName.endsWith(xlsx)){  

                //2007  

                workbook = new XSSFWorkbook(is);  

            }  

        } catch (IOException e) {  

            logger.info(e.getMessage());  

        }  

        return workbook;  

    }  

    public static String getCellValue(Cell cell){  

        String cellValue = “”;  

        if(cell == null){  

            return cellValue;  

        }  

        //把数字当成String来读,避免出现1读成1.0的情况  

        if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){  

            cell.setCellType(Cell.CELL_TYPE_STRING);  

        }  

        //判断数据的类型  

        switch (cell.getCellType()){  

            case Cell.CELL_TYPE_NUMERIC: //数字  

                cellValue = String.valueOf(cell.getNumericCellValue());  

                break;  

            case Cell.CELL_TYPE_STRING: //字符串  

                cellValue = String.valueOf(cell.getStringCellValue());  

                break;  

            case Cell.CELL_TYPE_BOOLEAN: //Boolean  

                cellValue = String.valueOf(cell.getBooleanCellValue());  

                break;  

            case Cell.CELL_TYPE_FORMULA: //公式  

                cellValue = String.valueOf(cell.getCellFormula());  

                break;  

            case Cell.CELL_TYPE_BLANK: //空值   

                cellValue = “”;  

                break;  

            case Cell.CELL_TYPE_ERROR: //故障  

                cellValue = “非法字符”;  

                break;  

            default:  

                cellValue = “未知类型”;  

                break;  

        }  

        return cellValue;  

    }  

}

用java怎么将excel表格数据导入到mysql数据库中

参考下面方法:

import java.io.FileInputStream;­

import java.io.FileNotFoundException;­

import java.io.IOException;­

import org.apache.commons.logging.Log;­

import org.apache.commons.logging.LogFactory;­

import org.apache.poi.hssf.usermodel.HSSFCell;­

import org.apache.poi.hssf.usermodel.HSSFRow;­

import org.apache.poi.hssf.usermodel.HSSFSheet;­

import org.apache.poi.hssf.usermodel.HSSFWorkbook;­

public class TestExcel {­

//记录类的输出信息­

static Log log = LogFactory.getLog(TestExcel.class); ­

//获取Excel文档的路径­

public static String filePath = “D://excel.xls”;­

public static void main(String[] args) {­

try {­

// 创建对Excel工作簿文件的引用­

HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));­

// 在Excel文档中,第一张工作表的缺省索引是0

// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);­

HSSFSheet sheet = wookbook.getSheet(“Sheet1”);­

//获取到Excel文件中的所有行数­

int rows = sheet.getPhysicalNumberOfRows();

//遍历行­

for (int i = 0; i rows; i++) {­

// 读取左上端单元格­

HSSFRow row = sheet.getRow(i);­

// 行不为空­

if (row != null) {­

//获取到Excel文件中的所有的列­

int cells = row.getPhysicalNumberOfCells();­

String value = “”; ­

//遍历列­

for (int j = 0; j cells; j++) {­

//获取到列的值­

HSSFCell cell = row.getCell(j);­

if (cell != null) {­

switch (cell.getCellType()) {­

case HSSFCell.CELL_TYPE_FORMULA:­

break;­

case HSSFCell.CELL_TYPE_NUMERIC:­

value += cell.getNumericCellValue() + “,”; ­

break; ­

case HSSFCell.CELL_TYPE_STRING:­

value += cell.getStringCellValue() + “,”;­

break;­

default:­

value += “0”;­

break;­

}

// 将数据插入到mysql数据库中­

String[] val = value.split(“,”);­

TestEntity entity = new TestEntity();­

entity.setNum1(val[0]);­

entity.setNum2(val[1]);­

entity.setNum3(val[2]);­

entity.setNum4(val[3]);­

entity.setNum5(val[4]);­

entity.setNum6(val[5]);­

TestMethod method = new TestMethod();­

method.Add(entity);­

} catch (FileNotFoundException e) {­

e.printStackTrace();­

} catch (IOException e) {­

e.printStackTrace();­

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();

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/188976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-29 07:59
下一篇 2024-11-29 07:59

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29

发表回复

登录后才能评论