Java读取Excel表格中的数据并插入到数据库中

本文详细介绍了如何使用Java通过Jxls库操作Excel,从创建表、添加Maven依赖,到实体类设计、DAO接口编写,再到Service和Controller层实现,一步步教你将Excel数据导入到数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、查看Excel表格

在这里插入图片描述

二、数据库中创建表

CREATE TABLE `hdsp_country_info` (
  `ID` char(10) NOT NULL,
  `code` char(6) DEFAULT NULL COMMENT '国家编码',
  `name` varchar(20) DEFAULT NULL COMMENT '国家名称',
  PRIMARY KEY (`ID`) USING BTREE,
  UNIQUE KEY `pk_code` (`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

三、添加maven依赖

<dependency>
    <groupId>org.jxls</groupId>
    <artifactId>jxls-jexcel</artifactId>
    <version>1.0.6</version>
</dependency>

四、创建实体类

//lombok注解
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CountryCode {

    /**
     * id
     */
    private String id;
    
    /**
     * 编码
     */
    private String code;

    /**
     * 名称
     */
    private String name;
}

五、dao层接口添加新增方法

@Mapper
@Repository
public interface BaseDao{
@Insert("insert into 表名 (ID,code,name) values (#{id},#{code},#{name})")
    void insertCountry(CountryCode countryCode);
    }

六、service层

1、service层接口

public interface IBaseService {
void insertCountry(CountryCode countryCode);
}

2、接口实现类

@Service
public class BaseServiceImpl implements IBaseService {
	 @Resource   //注入dao层
    private BaseDao baseDao;
	@Override
    public void insertCountry(CountryCode countryCode); {
        return baseDao.insertCountry(countryCode);
    }
}

七、controller层

@AutoWired
BaseServiceImpl baseService;
@Test
public void test(){
    try{
        jxl.Workbook wb =null;
    //读取本地excel文件
    InputStream in=new FileInputStream("excel文件路径");
    wb = Workbook.getWorkbook(in);
    Sheet sheet=wb.getSheet(0);
    //获得excel数据总数量
    int row_total = sheet.getRows();
    for (int j=0;j<row_total;j++){
        //获得当前行上的所有列上的数据数组
        Cell[] cells=sheet.getRows(j);
        //打印第j行第0列的数据
        System.out.println(cells[0].getContents());
        //打印第j行第1列的数据
        System.out.println(cells[1].getContents());
        CountryCode country=new CountryCode(String.valueOf(j),cells[0].getContents(),cells[1].getContents());
        baseService.insertCountry(country);
    	}
    }
    catch(IOException e){
        e.printStack(); 
    }catch(BiffException e){
        e.printStack();
    }
}

在这里插入图片描述

需要注意的是,这个导出文件的后缀只支持xls

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值