当前位置: 首页 > 编程笔记 >

用Python将Excel数据导入到SQL Server的例子

余歌者
2023-03-14
本文向大家介绍用Python将Excel数据导入到SQL Server的例子,包括了用Python将Excel数据导入到SQL Server的例子的使用技巧和注意事项,需要的朋友参考一下

使用环境:Win10 x64 Python:3.6.4 SqlServer:2008R2    

因为近期需要将excel导入到SQL Server,但是使用的是其他语言,闲来无事就尝试着用python进行导入,速度还是挺快的,1w多条数据,也只用了1s多,代码也比较简单,就不多解释了。

用到的库有xlrd(用来处理excel),pymssql(用来连接使用sql server)

import xlrd
import pymssql
import datetime
# 连接本地sql server     地址     用户名  密码   数据库
conn = pymssql.connect("127.0.0.1:1433", "sa", "888888", "Test")
# 建立cursor
cursor = conn.cursor()
# excel文件
fname = "XXXX.xls"
#打开文件
bk = xlrd.open_workbook(fname)
#打开工作表
sh = bk.sheets()[0]
#获取行数
start_time=datetime.datetime.now()
sql3=''
# 遍历所有行
for i in range(1,sh.nrows):
  a = []
  sql = '('
  # 遍历所有列
  for j in range(sh.ncols):
    # 将excel每一列的值用,隔开
     sql += "'" + str(sh.cell(i, j).value) + "'" + ','
  # 组合成sql语句(value1,value2,value3,,)
  sql2 = sql.strip(",")
  sql3 += sql2.strip()+'),'
  # 1000行执行一次sql
  if i%1000==0:
    sql3 = sql3.rstrip(",")
    sql1 = "insert into Flow(ID, SaleDate,danwei,danweiname,huowuid,huowuname,chandi,guge,num,danjia,back,pihao,youxiaodate,jibendanwei,Userid,UserdanweiName,kehuquyu,kehuleixing,type) values %s " % sql3
    # 执行sql语句
    cursor.execute(sql1)
    sql = ""
    sql3=""
sql3 = sql3.rstrip(",")
sql1 = "insert into Flow(ID, SaleDate,danwei,danweiname,huowuid,huowuname,chandi,guge,num,danjia,back,pihao,youxiaodate,jibendanwei,Userid,UserdanweiName,kehuquyu,kehuleixing,type) values %s " % sql3
cursor.execute(sql1)
# commit提交变更
conn.commit()
# 结束时间
end_time = datetime.datetime.now()
speed = end_time - start_time
# 打印花费时间
print(speed)

以上这篇用Python将Excel数据导入到SQL Server的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 问题内容: 如何在不使用导入向导的情况下使用sql查询将Excel文件导入到sqlserver2008 Express Edition中的新表中 谢谢普拉迪 问题答案: 有一个Microsoft知识库文章,列出了所有可能的方法。 http://support.microsoft.com/kb/321686 我认为,使用或将是没有向导的最简单方法。(请参阅分布式查询) 请参阅OPENROWSET文档

  • 本文向大家介绍将excel高效导入sqlserver的可行方法,包括了将excel高效导入sqlserver的可行方法的使用技巧和注意事项,需要的朋友参考一下 大部分人都知道用oledb来读取数据到dataset,但是读取之后怎么处理dataset就千奇百怪了。很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,System.Data.SqlClient.SqlBulkCopy 对于新手来

  • 问题内容: 我正在尝试将MySQL数据保存到Excel文件,但是Excel单元格出现问题。我所有的文本都放在一个单元格中,我希望每个行值都在单独的Excel单元格中。这是我的代码: 问题答案: 尝试以下方法: PHP部分: 我认为这可以帮助您解决问题。

  • 通过itertuples,我需要将位于excel列(“G7”、“G8”)两行中的两个数据导出到google工作表的两列中。我该怎么做? 最后一行不会更新google表单的第3列

  • 问题内容: 我有一个xlsx格式的下表,我想将其导入到我的sql数据库中: 该表非常复杂,我只需要‘1)HEADING’之后的记录 我一直在寻找要导入sql的php库,但它们似乎仅用于简单的excel文件。 问题答案: 您有两种方法可以实现: 第一种方法: 1)将其导出为某种文本格式。最简单的可能是制表符分隔的版本,但是CSV也可以使用。 2)使用负载数据功能。参见http://dev.mysql

  • 本文向大家介绍thinkPHP实现将excel导入到数据库中的方法,包括了thinkPHP实现将excel导入到数据库中的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP实现将excel导入到数据库中的方法。分享给大家供大家参考,具体如下: PHPExcel插件可点击此处本站下载。 这里使用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的ve