首页 > 编程知识 正文

java中xlsx导入mysql的简单介绍

时间:2023-12-29 20:32:01 阅读:331076 作者:YZSM

本文目录一览:

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

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。