使用Python读取SQL Server并保存到Excel中

使用Python连接SQL Server数据库

import pymssql
#自己设置一下host,user, password, database
conn = pymssql.connect(host=ht,
                       user=usr,
                       password=pwd,
                       database=db,
                      # charset用UTF-8读中文会乱码,只读英文可以用UTF-8
                       charset='cp936', 
                       as_dict=False) #有时可以改成True 看情况
cur = conn.cursor()
if not cur:
    raise(NameError,"连接数据库失败")

使用Python连接SQL Server数据库执行简单查询SQL语句

结果返回到resList里,再关闭连接

sql = 'SELECT * FROM TABLE1'
cur.execute(sql)
resList = cur.fetchall()
#查询完毕后必须关闭连接
conn.close()

使用Python连接SQL Server数据库执行非查询SQL语句

cur.execute(sql)
conn.commit()
conn.close()

将数据添加到excel

创建excel表并往里添加数据
Judge whether the file exists
if it exists, open the original file,
otherwise create a new file
:param filename: Target file path 目标路径
:param sheet_index: create a new sheet’s index
:param sheet_name: create a new sheet’s name
:param data: 想要添加进的excel数据 (List)

import openpyxl
def write_xlsx(filepath, filename, sheet_index, sheet_name, data):
    if os.path.exists(filename):
        "the file has already exists"
        wb = openpyxl.load_workbook(filename)
    else:
        "not exists"
        wb = openpyxl.Workbook()
        
    #添加sheet在excel里
    sheet = wb.create_sheet(title=sheet_name, index=sheet_index)
    
    #添加表头,可视情况修改
    sheet.append(['工厂','产品料号','产品类型','子阶料号','Total总量','客户'])
    
    #添加数据进excel表里
    for item in data:
        sheet.append(item)
   
    #保存
    wb.save(filepath+filename)

hint: openpyxl 比 pyxl 可以创建更多的excel行数

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Python 的 pyodbc 模块来连接 SQL Server 数据库并执行更新操作。 首先读取 Excel 文件数据,可以使用 pandas 库的 read_excel() 函数读取 Excel 文件并将其存储在一个 DataFrame 。然后,使用 pyodbc 模块的 connect() 函数连接 SQL Server 数据库,并使用 cursor() 函数创建一个光标对象。 接下来,可以使用光标对象的 execute() 函数执行 UPDATE 语句,从而更新数据库数据。这里是一个例子: ``` import pyodbc import pandas as pd # 连接 SQL Server 数据库 cnxn = pyodbc.connect('Driver={SQL Server};' 'Server=server_name;' 'Database=database_name;' 'Trusted_Connection=yes;') # 创建光标对象 cursor = cnxn.cursor() # 读取 Excel 文件数据 df = pd.read_excel('file.xlsx') # 遍历 DataFrame 的每一行 for index, row in df.iterrows(): # 构造 UPDATE 语句 sql = f"UPDATE table_name SET column1 = '{row['column1']}', column2 = '{row['column2']}' WHERE id = {row['id']}" # 执行 UPDATE 语句 cursor.execute(sql) # 提交更改 cnxn.commit() # 关闭光标对象和连接 cursor.close() cnxn.close() ``` 希望这能帮到你! ### 回答2: 要实现Python批量更新Excel数据SQL Server,以下是具体的步骤: 1. 首先,需要安装Python的相关依赖包,包括pandas、pyodbc等。可以使用pip命令进行安装。 2. 确保已经安装好SQL Server,并且在SQL Server创建好对应的数据表,以准备接收Excel数据。 3. 使用pandas库的read_excel函数读取Excel文件的数据,并将其保存到一个DataFrame对象。 4. 使用pyodbc库来连接到SQL Server数据库。 5. 使用pyodbc库的execute函数执行SQL语句来创建一个游标对象。 6. 使用游标对象的executemany函数来批量插入数据SQL Server数据表,传入的参数为数据表名称和DataFrame对象的值。 7. 最后,使用commit函数将数据插入到SQL Server,并使用close函数关闭游标和数据库连接。 下面是一个示例代码: ```python import pandas as pd import pyodbc # 读取Excel文件到DataFrame df = pd.read_excel('data.xlsx') # 连接到SQL Server数据库 conn = pyodbc.connect('DRIVER={SQL Server};SERVER=服务器名称;DATABASE=数据库名称;UID=用户名;PWD=密码') # 创建游标对象 cursor = conn.cursor() # 批量更新数据SQL Server cursor.executemany("UPDATE 表名 SET 字段1=?, 字段2=? WHERE 条件", list(df.to_records(index=False))) # 提交更新的数据 conn.commit() # 关闭游标和数据库连接 cursor.close() conn.close() ``` 需要根据实际情况修改代码的服务器名称、数据库名称、用户名、密码、表名、字段等信息。 ### 回答3: 要使用Python批量更新Excel数据SQL Server,我们可以使用以下几个步骤: 1. 首先,我们需要安装所需的库,包括pandas和pyodbc。可以使用pip install pandas pyodbc命令来安装这些库。 2. 接下来,我们需要连接到SQL Server数据库使用pyodbc库可以帮助我们建立与数据库的连接。我们需要提供数据库的连接字符串,包括服务器名、数据库名、用户名和密码等信息。例如: conn = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=服务器名;DATABASE=数据库名;UID=用户名;PWD=密码') 3. 然后,使用pandas库读取Excel文件数据,将其转换为DataFrame对象。可以使用pandas的read_excel函数来读取Excel文件,并将其保存到DataFrame: df = pd.read_excel('文件名.xlsx') 4. 现在,我们可以使用pandas的to_sql函数将DataFrame数据批量插入到SQL Server。我们需要指定目标表的名称以及连接到数据库的连接对象。例如: df.to_sql('表名', conn, if_exists='replace', index=False) 在这个例子,if_exists参数用于指定如果表已经存在,是否进行替换。如果设置为'replace',则会先删除表的所有数据,然后将DataFrame数据插入到表。如果设置为'append',则会在现有表的末尾追加数据。 最后,我们需要关闭与SQL Server的连接。使用conn.close()来关闭连接。 通过以上步骤,我们就可以使用Python批量更新Excel数据SQL Server了。这样可以提高数据处理的效率,并且能够更方便地与数据库进行交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值