3分钟学会Python 针对Excel操作
1.python 读取Excel
# -*- coding: utf-8 -*-
import xlrd
import os,sys
reload(sys)
sys.setdefaultencoding("utf8")
filename = 'text.xlsx'
filename = filename.decode('utf-8')
book = xlrd.open_workbook(filename)
sheet1 = book.sheets()[0]
nrows = sheet1.nrows
print u'表格总行数 ',nrows
ncols = sheet1.ncols
print u'表格总列数 ',ncols
##查询表头
excelhead = []
for i in range(ncols):
excel_head_values = sheet1.col_values(i)
excelhead.append(excel_head_values[0])
##查询行的值
excelhang = []
for i in range(nrows)[1:]:
row_values = sheet1.row_values(i)
print 'User:' + row_values[2] + ' Filename:' + row_values[0] + ' Tablename:' + row_values[1]
text.xlsx内容如下:

运行结果:
表格总行数 4
表格总列数 3
User:edw Filename:sh002_zyb_tx_chk_h0200.py Tablename:SH002_ZYB_TX_CHK_H0200
User:etl Filename:sh002_a_h0200.py Tablename:SH002_A_H0200
User:app Filename:sh002_b_h0200.py Tablename:SH002_B_H0200
2.python 写入Excel
# -*- coding: utf-8 -*-
import xlwt
import pymysql
def sql_connect(sql):
conn = pymysql.connect(host='192.168.3.xx',port=3306, user='root', password='123456',db='hive',charset='utf8')
cur = conn.cursor()
cur.execute(sql)
data = cur.fetchall()
cur.close()
conn.close()
return data
def write_excel(filename, data):
book = xlwt.Workbook() #创建excel对象
sheet = book.add_sheet('PARTITIONS') #添加一个表Sheet
c = 0 #保存当前列
for d in data: #取出data中的每一个元组存到表格的每一行
for index in range(len(d)): #将每一个元组中的每一个单元存到每一列
sheet.write(c,index,d[index])
c += 1
book.save(filename) #保存excel
sql = 'select * from PARTITIONS limit 100'
res = sql_connect(sql)
write_excel('partitions.xls', res)
运行结果:
-rw-r--r-- 1 root root 17920 8月 6 11:53 partitions.xls3.python Excel写入表内
# -*- coding: utf-8 -*-
import xlwt
import xlrd
import pymysql
#从excel读取数据写入mysql
def excel_to_mysql(filename):
conn = pymysql.connect(host='192.168.3.xx',port=3306, user='root', password='123456',db='hive',charset='utf8')
cur = conn.cursor() #连接数据库
book = xlrd.open_workbook(filename)
sheet = book.sheet_by_name('Sheet1')
rows = sheet.nrows #获取行数
for r in range(1,rows): #将标题之外的其他行写入数据库
r_values = sheet.row_values(r)
sql = 'insert into user_zw values(%s,%s,%s)' #有几个字段需要几个%s
data = cur.execute(sql,r_values) #将每一行插入sql
conn.commit() #插入所有数据后提交
cur.close()
conn.close()
excel_to_mysql('user_zw.xls')
user_zw.xls的内容:

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人