使用R语言转存Excel到MySQL

2024-08-22 09:08

本文主要是介绍使用R语言转存Excel到MySQL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

花了两天时间写了一个Excel数据转换脚本,原需求除了要把数据转存到Mysql中,还要对每一条数据进行拆分和重组,并不容易。最终我利用R语言完成了这个小需求,本着总结学习的想法,在此处将多余逻辑删除,抽离出了最基本的Excel转存Mysql的功能,这样也可以算一个小轮子了。(仅做学习用,Navicat等工具可以直接导入Excel)

本项目已开源至Github,地址:https://github.com/TianZonglin/transferExcelbyR

适用场景和使用要求(暂)

  • 需要处理的表文件以文件夹形式存储
  • 全部的数据表均必须包含相同的列格式,切忌无关表的污染
  • 每个表文件中只有一个Sheet
  • 数据表必须在第三级目录(单文件亦是如此),例如
ecProject\io_Input_Excel_Folder\simples\ORGDATA.XLS
# 分别是:工作目录 -> 输入文件夹(1st) -> 内部自定义的文件夹(2nd) -> 真正的表文件(3rd)

此脚本的特点

  • 批量处理全部输入文件夹下二级文件夹的全部Excel表文件
  • 自动根据所需要转换的Excel表文件在Mysql中创建表
  • 自动检测Excel表文件的数据边界
  • 详细的debug统计信息
  • 合并全部Excel表文件到单一的Mysql数据表
  • 默认不需要对数据库进行操作

使用方法

使用对象

tool_excel2mysql.R,这是通用的转换工具,其他脚本面向特殊的需求。推荐使用** R Studio **运行此代码。

所需要的软件和开发环境

即需要Mysql的环境+Mysql的可视化工具+R环境+R可视化开发工具,上述所有软件均可在网上找到。

注意:更新使用 Navicat 11 premium,原版本太过老旧。百度网盘:https://pan.baidu.com/s/18zg6NNogRVRHHD-fEj9UCg 提取码:cbkj

安装所需要的程序包
# 注意这部分仅运行一次即可
# near line 8
#install.packages("RMySQL")
#install.packages("stringr")
#install.packages("readxl")
#install.packages("readr")
修改工作路径
# near line 14
setwd("C:\\Users\\zonglin\\OneDrive - Universiteit Utrecht\\Desktop\\ecProject\\")
修改Mysql配置
# 默认数据库名称: test
# near line 17
conn = dbConnect(MySQL(), user = 'root', password = 'root', dbname = 'test',host = 'localhost')

# 默认生成的表名称: tb_from_excel
# 如果需要修改,可以直接在代码中全局替换这个字段
# use editor's find/replace function to replace it all.
选择合适的起始列
# 默认起始列数: 1
# 可以自由设置转存的起始列
# near line 222
tmp = transExcel2MysqlDB(tmpPath, cnt, startmark = 1)
设置仅测试部分数据

如果你有大量的Excel文件,且你只想测试此代码或使用日志中的errinfo with finally来捕获Excel的调试信息(可以打开或打不开),则可以修改以下部分。 其只加载有限的表数据。

# near line 85
edata <- edata[30:35,]

日志 (processRecord.csv)

errinfo with summary

这是插入SQL失败的记录。如果使用文件夹包含多个Excel,则每个Excel都可以输出单独的errinfo with summary。 使用此缓存信息,我们可以在Navicat的帮助下自动的找到错误的sql位置。

然后你可以修改 tool_excel2mysql 的代码内容来修复或者直接给我相关反馈。

errinfo with finally

这部分是全局信息,包含无法读取的Excel表信息和最终的统计数据。 如果此处显示了某个excel,那你需要手动检查此文件以查找真正的问题。 有时重新保存(打开然后保存)就可以解决不能读取的问题。

基本上来说,该工具可以顺利地将数据从我的xls、xlsx文件转存到mysql,并且成功率几乎达到100%。 (上面的截图是为了演示errinfo的例子)


English Version


赶紧使用一下吧…



😒 留下您对该文章的评价 😄


这篇关于使用R语言转存Excel到MySQL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095838

相关文章

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —