import pymssql # 引入pymssql模块
import openpyxl # 引入xlwt模块
import xlwt
import os
import datetime
style_datetime = xlwt.XFStyle()
style_datetime.num_format_str = 'M/D/YY hh:mm' # 设定时间格式
# 获取当前运行路径
current_dir = os.path.abspath(os.path.dirname(__file__)) + "\\"
connect = pymssql.connect('127.0.0.1:1433', '账户', '密码', '数据库名称', charset="utf-8")
# 设置sql取数函数
def export_excel(xlsxname, name):
if connect:
print("连接成功!")
out_path = "D:\\data\\{}.xlsx".format(xlsxname) # 导出excel的存储路径
print("文件保存路径:", out_path)
cursor = connect.cursor() # 创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "select * FROM {} where 1=1".format(name)
cursor.execute(sql) # 执行sql语句
fields = [field[0] for field in cursor.description] # 获取所有字段名
all_data = cursor.fetchall() # 所有数据
aa = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
# 写入excel
book = xlwt.Workbook()
sheet = book.add_sheet('sheet1')
for col, field in enumerate(fields):
sheet.write(0, col, field)
row = 1
for data in all_data:
for col, field in enumerate(data):
# 如有特殊列可做格式设置,如有日期列,如下
if col == 100:
sheet.write(row, col, field, style_datetime)
else:
sheet.write(row, col, field)
row += 1
book.save(out_path + "{}_" + "%s.xlsx" % aa)
print("Export to excel success!")
if __name__ == '__main__':
# export data from SQL server
name1 = '需要导出的表名称' # 数据库中的表名称
export_excel('需要导出的表名称', name1) # 导出在本地的表名称
# close database connection
connect.close()
python连接sql server数据库取数(xls格式)
最新推荐文章于 2024-08-03 21:57:47 发布