最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js實現(xiàn)讀取Excel數(shù)據(jù)并插入MySQL

 更新時間:2023年11月10日 14:04:21   作者:百萬蹄蹄向前沖  
這篇文章主要為大家詳細介紹了Node.js如何實現(xiàn)讀取Excel數(shù)據(jù)并插入到MySQL數(shù)據(jù)庫中,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

使用最新的MySQL2模塊,mysql2是最新的Node.js調(diào)用MySQL驅(qū)動

本文從EXCEL中讀取數(shù)據(jù),然后使用一條語句將數(shù)據(jù)插入到MySQL中

INSERT INTO 學生 (序號, 學號, 姓名,性別)
    VALUES
    ${str}

npm包地址 www.npmjs.com/package/mysql2#mysql-2

mysql2中文文檔:github.com/sidorares/node-mysql2/blob/HEAD/documentation/zh-cn/

一、代碼執(zhí)行效果

二、讀取EXCEL數(shù)據(jù)

目標得到:(1,22503,'王','女'),(2,22503,'葉甜','女')格式的數(shù)據(jù)

主函數(shù)代碼:

const ExcelJS = require('exceljs')
//引入自定義模塊myFun
const my = require('./my.js')
let 工具 = new my() 
讀取EXCEL()
async function 讀取EXCEL() {
    const 工作簿 = new ExcelJS.Workbook()
    await 工作簿.xlsx.readFile('EXCEL/生菜前端.xlsx') // 替換為您的Excel文件路徑 
    const 工作表 = 工作簿.worksheets[6]
    console.log( 工具.getStr(工作表) )
}

讀取一個Excel文件并打印一內(nèi)容。具體來說,代碼做了以下事情:

1.引入exceljs庫:這是一個用于處理Excel文件的JavaScript庫。

2.引入自定義模塊my.js:一個my類。

3.調(diào)用讀取EXCEL函數(shù):這是一個異步函數(shù),它執(zhí)行以下操作:

1)創(chuàng)建一個新的ExcelJS工作簿對象。

2) 使用readFile方法異步讀取指定路徑的Excel文件。這個路徑是EXCEL/生菜前端.xlsx,你需要替換為你實際的Excel文件路徑。

3)獲取工作簿的第7個工作表(在計算機中,索引從0開始,所以worksheets[6]指的是第7個工作表)。
使用工具.getStr方法處理工作表,并將結(jié)果打印到控制臺

自定義類代碼:

class my{
    getStr(工作表){
        let str = ''
        let arr = this.to_arr(工作表)
        for(let i=1; i<arr.length  ; i++ ){
            let one = arr[i]
            let 單個  = `(${one[0]},${one[1]},'${one[2]}','${one[3]}'),`
            str+= 單個
        }
        str = str.slice(0, -1);
        return str
    }
    to_arr(工作表) {  
        let arr = [] 
        工作表.eachRow((row, rowIndex) => {  
            let rowArr = [] 
            row.eachCell((cell, colIndex) => {  
                rowArr.push(cell.value) 
            }) 
            arr.push(rowArr) 
        }) 
        return arr 
    }
    to_cellObj(工作表){
        let OBJ = {}
        const colArr = ['占位','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
        工作表.eachRow((row,rowIndex) => {
            row.eachCell((cell, colIndex) => {
                let 列名 = colArr[colIndex]
                OBJ[列名+rowIndex] = cell.value
            })
        })
        return OBJ
    }
}
module.exports = my

三、數(shù)據(jù)庫語句

CREATE DATABASE 考勤 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE 考勤;
CREATE TABLE 年級 (  
  id INT  AUTO_INCREMENT, 
  年級 INT, 
  專業(yè) VARCHAR(255),
  行政班名 VARCHAR(500),
  班級編號 VARCHAR(100),
  輔導員 VARCHAR(50),
  PRIMARY KEY(id)
);
CREATE TABLE 課程 (  
  id INT  AUTO_INCREMENT, 
  教室 TEXT, 
  時段 VARCHAR(255),
  日期 DATE,
  PRIMARY KEY(id)
);
INSERT INTO 課程 
(教室,時段,日期) 
VALUES 
('615教室','1-4','2023-11-08'),
('606教室','5-8','2023-11-08');
CREATE TABLE 學生(
  id INT  AUTO_INCREMENT, 
  序號 INT,
  學號 VARCHAR(100),
  姓名 VARCHAR(200),
  性別 VARCHAR(20),
  QQ VARCHAR(200),
  手機 VARCHAR(200),
  PRIMARY KEY(id)
)
INSERT INTO 學生 (序號, 學號, 姓名,性別) VALUES (?, ?, ?, ?, ?)

四、完整代碼

const mysql = require('mysql2/promise');
const ExcelJS = require('exceljs')
//引入自定義模塊myFun
const my = require('./my.js')
let 工具 = new my() 
main()
async function main(){
    let config = {
        host:'localhost', 
        port:3380,
        user: 'root', 
        database: '考勤'
    }
    const pool = await mysql.createPool(config);
    //從EXCEL中讀取值
    const 工作簿 = new ExcelJS.Workbook()
    await 工作簿.xlsx.readFile('EXCEL/生菜前端.xlsx') // 替換為您的Excel文件路徑 
    const 工作表 = 工作簿.worksheets[6]
    let str = 工具.getStr(工作表) 
    let SQL = `
    INSERT INTO 學生 (序號, 學號, 姓名,性別) 
    VALUES 
    ${str}
    `
    const result = await pool.execute(SQL);
    console.log(result[0])
}

這段代碼是一個使用Node.js和ExcelJS庫以及MySQL連接池的異步函數(shù)。

其主要功能是從一個Excel文件中讀取數(shù)據(jù),然后將這些數(shù)據(jù)插入到MySQL數(shù)據(jù)庫中的一個表中:

1)let config = {...}:定義了一個對象,包含了連接到MySQL數(shù)據(jù)庫所需的配置。

2)const pool = await mysql.createPool(config):使用上述配置創(chuàng)建一個MySQL連接池。mysql2是一個最新的Node.js驅(qū)動mysql數(shù)據(jù)庫模塊。

3)const 工作簿 = new ExcelJS.Workbook():創(chuàng)建一個新的ExcelJS工作簿對象。

4)await 工作簿.xlsx.readFile('EXCEL/生菜前端.xlsx'):異步讀取指定路徑的Excel文件。你需要替換路徑為你實際的Excel文件路徑。

5)const 工作表 = 工作簿.worksheets[6]:獲取工作簿中的第7個工作表(在EXCEL中,工作表索引從0開始)。

6)let str = 工具.getStr(工作表):調(diào)用自定義模塊my.js中的getStr方法處理工作表,并將結(jié)果賦值給str。

7) 定義SQL插入語句,其中${str}是之前從Excel文件中讀取的數(shù)據(jù),會被插入到SQL語句

8)const result = await pool.execute(SQL):使用連接池執(zhí)行SQL插入語句。

9)console.log(result[0]):打印插入操作的結(jié)果。

注意:此代碼中使用的MySQL語法可能存在問題,特別是使用字符串模板插入多個值。這可能會導致SQL注入問題。為了防止這種情況,建議使用參數(shù)化查詢或預(yù)編譯語句。同時,請確保工具.getStr方法返回的數(shù)據(jù)格式與SQL插入語句的需求一致。

返回數(shù)據(jù)結(jié)果:

ResultSetHeader {
  fieldCount: 0,
  affectedRows: 46,
  insertId: 95,
  info: 'Records: 46  Duplicates: 0  Warnings: 0',
  serverStatus: 2,
  warningStatus: 0,
  changedRows: 0
}

五、小結(jié)

注意插入語句返回結(jié)果在result[0]。

到此這篇關(guān)于Node.js實現(xiàn)讀取Excel數(shù)據(jù)并插入MySQL的文章就介紹到這了,更多相關(guān)Node.js讀取Excel數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識)

    總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識)

    這篇文章主要介紹了總結(jié)Node.js中9種fs模塊文件操作方法(文件夾遞歸刪除知識),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • express中static中間件的具體使用方法

    express中static中間件的具體使用方法

    這篇文章主要介紹了express中static中間件的具體使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • nodejs中方法和模塊用法示例

    nodejs中方法和模塊用法示例

    這篇文章主要介紹了nodejs中方法和模塊用法,結(jié)合實例形式分析了nodejs方法與模塊的定義及使用方法,需要的朋友可以參考下
    2018-12-12
  • 利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器

    利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器

    這篇文章主要介紹了利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 關(guān)于Mac下安裝nodejs、npm和cnpm的教程

    關(guān)于Mac下安裝nodejs、npm和cnpm的教程

    本文通過圖文并茂的形式給大家介紹了Mac下安裝nodejs、npm和cnpm的教程,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-04-04
  • 基于uni-app和Node.js實現(xiàn)app更新功能

    基于uni-app和Node.js實現(xiàn)app更新功能

    uniapp 打包 ios,android 之后,有時候緊急修復或修改 ui,還需要走應(yīng)用市場審核,往往審核時間就需要幾天,如果是有bug需要升級就會很著急,要在uni-app中實現(xiàn)app更新功能,并使用Node.js作為后端服務(wù)本文給出了詳細的思路和步驟,需要的朋友可以參考下
    2024-08-08
  • 使用NVM管理Node.js多版本的方法

    使用NVM管理Node.js多版本的方法

    本文主要VM是一種Node版本管理工具,可以安裝和卸載多個多個的不同版本,NVM的N安裝和配置NVMDN安裝NodeD和NPMN全局NRM安裝和配置NPM源,文中詳細介紹了NVM的安裝步驟和配置方法,需要的朋友可以參考下
    2026-05-05
  • Node.js express的基本使用詳解

    Node.js express的基本使用詳解

    Express是基于Node.js的輕量級Web框架,封裝了HTTP服務(wù)、路由管理、中間件等核心功能,簡化了Web應(yīng)用和API開發(fā),這篇文章給大家介紹Node.js express的基本使用,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • 基于nodejs+express4.X實現(xiàn)文件下載的實例代碼

    基于nodejs+express4.X實現(xiàn)文件下載的實例代碼

    本篇文章主要介紹了詳解nodejs+express4.X的文件下載的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • node crawler如何添加promise支持

    node crawler如何添加promise支持

    這篇文章主要介紹了node crawler如何添加promise支持,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02

最新評論

呼玛县| 宝山区| 兰西县| 蒙阴县| 登封市| 体育| 宁安市| 固原市| 安西县| 莆田市| 静海县| 永泰县| 揭东县| 宜兰县| 齐河县| 翁源县| 米泉市| 武邑县| 石狮市| 鹤壁市| 社旗县| 龙岩市| 中牟县| 修水县| 上饶县| 永济市| 石楼县| 巍山| 盐山县| 墨竹工卡县| 改则县| 聂拉木县| 方山县| 酒泉市| 旌德县| 哈巴河县| 中西区| 泸定县| 江西省| 璧山县| 永泰县|