专业编程基础技术教程

网站首页 > 基础教程 正文

Node 读取 Excel 存 MySQL

ccvgpt 2024-12-02 15:50:00 基础教程 1 ℃

1. 安装所需的库

首先,需要安装`node xlsx`库来读取Excel文件,以及`mysql`库来连接和操作MySQL数据库。

Node 读取 Excel 存 MySQL

在命令行中执行以下命令来安装这两个库:

`npm install node xlsx mysql`

2. 读取Excel文件

以下是一个简单的示例代码,用于读取Excel文件。假设Excel文件中有一个工作表(Sheet),且数据是简单的表格形式(行和列的数据)。

```javascript
const xlsx = require('node xlsx');
// 读取Excel文件
const workbook = xlsx.parse('your_excel_file.xlsx');
// workbook是一个包含多个工作表(Sheet)的对象
const sheet = workbook[0];// 获取第一个工作表
// sheet.data是一个二维数组,第一行通常是标题行,从第二行开始是数据行
const data = sheet.data;
```

3. 连接MySQL数据库

下面是连接MySQL数据库的代码。需要将`host`、`user`、`password`和`database`等参数替换为实际的值。

```javascript
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'your_host',
user: 'your_user',
password: 'your_password',
database: 'your_database'
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL: ', err);
return;
}
console.log('Connected to MySQL successfully!');
});
```

4. 将Excel内容存入MySQL

假设Excel文件中的列标题与MySQL表中的列名相对应。以下代码将数据从Excel文件插入到MySQL表中。

```javascript
const insertData = (data) => {
const tableName = 'your_table_name';
const columns = data[0].map((col) => '`'+col+'`').join(', ');
for (let i = 1; i < data.length; i++) {
const values = data[i].map((value) => {
if (typeof value === 'string') {
return `'${value}'`;
} else {
return value;
}
}).join(', ');
const sql = `INSERT INTO ${tableName} (${columns}) VALUES (${values})`;
connection.query(sql, (err, result) => {
if (err) {
console.error('Error inserting data: ', err);
} else {
console.log('Data inserted successfully!');
}
});
}
};
insertData(data);
```

在上述代码中:

首先获取了Excel文件中第一行的列标题,并将它们格式化为MySQL列名的格式(用反引号包围,以处理包含特殊字符的列名)。

然后遍历从第二行开始的数据行。对于每一行,将数据值格式化为可以插入到MySQL中的格式(字符串值用单引号包围)。

最后构建插入数据的SQL语句并执行。


5. 关闭数据库连接

当所有数据插入完成后,应该关闭数据库连接,以释放资源。

```javascript
connection.end((err) => {
if (err) {
console.error('Error closing connection: ', err);
} else {
console.log('Connection closed successfully!');
}
});
```


请注意:

上述代码只是一个基本的示例,在实际应用中,需要根据Excel文件的具体结构和MySQL表的结构进行适当调整。例如,如果Excel文件中有多个工作表,可能需要循环读取每个工作表。

对于数据类型的处理可以更加复杂。在这个示例中,只是简单地对字符串类型的值添加了单引号。在实际情况中,可能需要根据MySQL表中列的数据类型进行更准确的转换。

要确保在运行代码之前,已经创建了对应的MySQL数据库和表,并且表的结构与Excel文件中的数据结构相匹配。

Tags:

最近发表
标签列表