拆分excel中的多个表,并把表数据导入到Linux中的mysql数据表当中。

参考文章:

在linux中将excel表格数据导入Mysql数据库(含中文数据) - 简书 (jianshu.com)

Excel一个工作簿中多个工作表拆分成多个独立的工作簿! - 知乎 (zhihu.com)

拆分excel中的多个表

打开excel-----文件------选项------自定义功能区-------勾选开发工具------回到excel首页点击开发工具------点击visual Basic------点击插入-----模块-----粘贴代码放入模块中------点击运行。

Private Sub 分拆工作表()
Dim sht As Worksheet
Dim MyBook As Workbook
Set MyBook = ActiveWorkbook
For Each sht In MyBook.Sheets
sht.Copy
ActiveWorkbook.SaveAs Filename:=MyBook.Path & "\" & sht.Name, FileFormat:=xlNormal '将工作簿另存为EXCEL默认格式
ActiveWorkbook.Close
Next
MsgBox "文件已经被分拆完毕!"
End Sub

 将拆分完的表送到Linux存储导入mysql表。

1、将拆分完的表以csv格式另存,在导出时格式选择CSV UTF-8(逗号分隔)*.csv。

2、把csv格式的表直接复制到Linux虚拟机的桌面。

3、通过Linux命令把桌面的csv文件存储到/var/lib/mysql-files(其中MySQL替换为为你的用户主名,BookInfo.csv替换为你的csv文件名)。

mv /home/MySQL/Desktop/BookInfo.csv /var/lib/mysql-files/

 4、通过Linux命令更改csv文件的权限,添加可读权限。

chmod 644 /var/lib/mysql-files/BookInfo.csv

5、设置mysql字符集为utf8。

查看mysql当前字符集

show variables like 'char%';

以下5项都要为utf8

character_set_client  #为客户端编码方式
character_set_connection  #为建立连接使用的编码
character_set_database  #数据库的编码
character_set_results  #结果集的编码
character_set_server  #数据库服务器的编码

如果有一项不是utf8,则修改文件/etc/mysql/my.cnf文件

停止mysql运行

service mysqld start(stop)   #为启动和停止服务器

找到[mysqld],在下面 添加:

[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

或者,找到[mysql]和[client],分别在下面添加:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

修改好后,重新启动mysql :service mysqld restart,重新查询数据库编码可发现编码方式的改变。

6、根据csv文件的表结构建表(记住设置表的字符集为utf8)。

CREATE TABLE BookInfo (
    ID INT PRIMARY KEY,
    ProductID BIGINT NOT NULL UNIQUE, 
    BookName VARCHAR(100) NOT NULL,
    ProductType VARCHAR(100) NOT NULL,
    Price FLOAT NOT NULL, 
    Publisher INT NOT NULL, 
    ISBN VARCHAR(20) NOT NULL UNIQUE,
    Writer VARCHAR(20),
    Edition INT,
    Format VARCHAR(10),
    PublishTime VARCHAR(20),
    FOREIGN KEY (ProductType) REFERENCES ProductType(TypeID),
    FOREIGN KEY (Publisher) REFERENCES PublisherInfo(PublisherID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

7、导入csv文件的数据(如果csv文件的第一行是列名,则用ignore 1 rows命令跳过csv文件第一行)

LOAD DATA INFILE '/var/lib/mysql-files/BookInfo.csv'
INTO TABLE BookInfo
CHARACTER SET utf8
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS; 
### 学生成绩录入系统的软件工程实现方法 #### 需求分析 学生成绩管理系统的设计初衷是为了应对学校学生数量增加带来的信息管理挑战。随着学生数据量的增长,传统的手动成绩管理模式已无法满足需求,因此需要构建一套高效的成绩录入系统来支持自动化和精确化的成绩管理[^1]。 #### 系统架构设计 为了确保系统的可扩展性和维护性,采用分层架构是一种常见做法。通常分为示层、业务逻辑层和服务访问层: - **示层**:负责用户界面展示以及与用户的交互操作; - **业务逻辑层**:处理核心功能如成绩计算、排名统计等; - **服务访问层**:提供数据库连接和其他外部资源接口。 #### 数据库设计 考虑到性能优化及安全性因素,在数据库结构上应精心规划字段类型及其关系模型。主要涉及以下几个方面: - 创建`students`存储基本信息(ID,姓名,班级编号); - 构建`scores`记录各科目的具体分数详情(科目名称,考试日期,score值),与student_id建立外键关联; ```sql CREATE TABLE students ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), class_code CHAR(8) ); CREATE TABLE scores( student_id INT NOT NULL, subject_name VARCHAR(30), exam_date DATE, score DECIMAL(5,2), FOREIGN KEY (student_id) REFERENCES students(id) ); ``` #### 功能模块划分 依据实际应用场景拆分多个独立的功能单元以便于后期迭代更新: - 成绩输入: 支持教师批量导入Excel文件或在线填写单条目; - 查询浏览: 提供按条件筛选查看某位同学的历史成绩趋势图等功能; - 统计报: 自动生成学期末总评报告导出PDF文档给家长查阅. #### 技术选型建议 对于此类Web应用项目而言,LAMP(Linux-Apache-Mysql-PHP)/LNMN(Linux-Nginx-Mysql-Node.js)组合是比较成熟稳定的选择方案之一; 若追求更现代化的技术栈,则可以考虑Django(Flask)+Python+PostgreSQL 或者 Spring Boot + Java + MySQL 的搭配方式.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值