excel 列名是数据表 的字段名 ,单元格的值 是数据表对应字段的值,生成sql插入语句

  1. 在 Excel 中,按 Alt + F11 打开 VBA 编辑器。
  2. 在菜单栏选择 插入 -> 模块,在新模块中粘贴以下代码。

VBA 代码

vbnet 复制代码
Sub GenerateSQLInsertStatementsToFile()
    Dim ws As Worksheet
    Dim lastRow As Long, lastCol As Long, i As Long, j As Long
    Dim sql As String, colNames As String, values As String
    Dim tableName As String
    Dim cellValue As String
    Dim filePath As String
    Dim fileNum As Integer

    ' 设置工作表
    Set ws = ActiveSheet  ' 使用当前活动的工作表
    tableName = "your_table_name"  ' 设置你的数据库表名
    filePath = "D:\file.txt"  ' 设置文件路径

    ' 打开文件
    fileNum = FreeFile()
    Open filePath For Output As #fileNum

    ' 获取数据范围
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

    ' 构建列名字符串
    For j = 1 To lastCol
        If j > 1 Then colNames = colNames & ", "
        colNames = colNames & "[" & ws.Cells(1, j).Value & "]"
    Next j

    ' 遍历每一行
    For i = 2 To lastRow
        values = ""
        
        ' 遍历每一列
        For j = 1 To lastCol
            If j > 1 Then values = values & ", "
            
            ' 处理单引号以适应 SQL 语法
            cellValue = Replace(ws.Cells(i, j).Value, "'", "''")
            
            ' 值
            If IsNumeric(cellValue) Then
                values = values & cellValue
            Else
                values = values & "'" & cellValue & "'"
            End If
        Next j
        
        ' 构建 SQL 语句
        sql = "INSERT INTO " & tableName & " (" & colNames & ") VALUES (" & values & ");"
        
        ' 写入文件
        Print #fileNum, sql
    Next i

    ' 关闭文件
    Close #fileNum
End Sub

Excel 并按 Alt + F8,选择 GenerateSQLInsertStatementsToFile,然后点击 运行

相关推荐
starrocks_stella36 分钟前
EMR Serverless StarRocks Object Table:用 SQL 连接 OSS 文件与多模态 AI
数据库
这个DBA有点耶1 小时前
以为自增ID只是有空洞?聊聊双主架构下无声的“数据覆盖”
数据库·mysql·dba
星恒随风1 小时前
Linux网络编程:彻底理解IO多路复用select!从fd_set位图、读写就绪到手写TCP多客户端字典服务器
linux·服务器·网络
nice_lcj5201 小时前
ThreadLocal 入门:它是怎么隔离数据的、为什么会导致内存泄漏
java·开发语言·后端·面试·并发编程·内存泄漏·threadlocal
钱栈up2 小时前
内网全断,怎么核实高炉和烧结系统的数据库对接信息
数据库
秋天的怀念_David2 小时前
算法一千零一夜 · 第二十六夜 协议的母语
java·spring boot·算法
灿飞2 小时前
Kotlin与Java虚拟机八:控制流与 when:卫语句、上下文相关解析与穷尽性
java·kotlin
weavecodes2 小时前
双层缓存与权限实时生效:织码在线教育系统的 Caffeine + Redis 设计
数据库
bksczm2 小时前
InnoDB 页结构详解:页类型、页头页尾、数据行与页目录
数据库·mysql
文丑颜不良啊2 小时前
LeetCode2021~2040题目解析
java·leetcode