首先,简单介绍一下EXECL中工作簿和工作表的区别:

工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET)。

•一个工作簿就是一个独立的文件

•一个工作簿里面可以有1个或者多个工作表

•工作簿是工作表的集合

1:使用python实现对Excel文件的读写,首先需要安装专用的模块(可以自己编写)xlrd,xlwt模块

2:读取excel数据(注意事项:sheet编号,行号,列号都是从索引0开始)

import xlrd

# 设置路径

path = 'E:/input.xlsx'

# 打开execl

workbook = xlrd.open_workbook(path)

# 输出Excel文件中所有sheet的名字

print(workbook.sheet_names())

# 根据sheet索引或者名称获取sheet内容

Data_sheet = workbook.sheets()[0] # 通过索引获取

# Data_sheet = workbook.sheet_by_index(0) # 通过索引获取

# Data_sheet = workbook.sheet_by_name(u'名称') # 通过名称获取

print(Data_sheet.name) # 获取sheet名称

rowNum = Data_sheet.nrows # sheet行数

colNum = Data_sheet.ncols # sheet列数

# 获取所有单元格的内容

list = []

for i in range(rowNum):

rowlist = []

for j in range(colNum):

rowlist.append(Data_sheet.cell_value(i, j))

list.append(rowlist)

# 输出所有单元格的内容

for i in range(rowNum):

for j in range(colNum):

print(list[i][j], '\t\t', end="")

print()

# 获取整行和整列的值(列表)

rows = Data_sheet.row_values(0) # 获取第一行内容

cols = Data_sheet.col_values(1) # 获取第二列内容

# print (rows)

# print (cols)

# 获取单元格内容

cell_A1 = Data_sheet.cell(0, 0).value

cell_B1 = Data_sheet.row(0)[1].value # 使用行索引

cell_C1 = Data_sheet.cell(0, 2).value

cell_D2 = Data_sheet.col(3)[1].value # 使用列索引

print(cell_A1, cell_B1, cell_C1, cell_D2)

# 获取单元格内容的数据类型

# ctype:0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

print('cell(0,0)数据类型:', Data_sheet.cell(0, 0).ctype)

print('cell(1,0)数据类型:', Data_sheet.cell(1, 0).ctype)

print('cell(1,1)数据类型:', Data_sheet.cell(1, 1).ctype)

print('cell(1,2)数据类型:', Data_sheet.cell(1, 2).ctype)

# 获取单元格内容为日期的数据

date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)

print(type(date_value), date_value)

print('%d:%d:%d' % (date_value[0:3]))

3:创建excel并写入数据

import xlwt

def set_style(name, height, bold=False):

style = xlwt.XFStyle() # 初始化样式

font = xlwt.Font() # 为样式创建字体

font.name = name

font.bold = bold

font.color_index = 4

font.height = height

style.font = font

return style

def write_excel(path):

# 创建工作簿

workbook = xlwt.Workbook(encoding='utf-8')

# 创建sheet

data_sheet = workbook.add_sheet('demo')

row0 = [u'字段名称', u'大致时段', 'CRNTI', 'CELL-ID']

row1 = [u'测试', '15:50:33-15:52:14', 22706, 4190202]

# 生成第一行和第二行

for i in range(len(row0)):

data_sheet.write(0, i, row0[i], set_style('Times New Roman', 220, True))

data_sheet.write(1, i, row1[i], set_style('Times New Roman', 220, True))

# 保存文件

# workbook.save('demo.xls')

workbook.save(path)

if __name__ == '__main__':

# 设置路径

path = 'E:/demo.xls'

write_excel(path)

print(u'创建demo.xls文件成功')

再看一个例子:

转载:Ryan in C++

基本的write函数接口很简单:

•新建一个excel文件: file = xlwt.Workbook() (注意这里的Workbook首字母是大写)

•新建一个sheet: table = file.add_sheet('sheet_name')

•写入数据table.write(行,列,value): table.write(0,0,'test')

•如果是写入中文,则要用u'汉字'的形式。比如: table.write(0,0, u'汉字')

•合并单元格: table.write_merge(x, x + m, y, y + n, string, style)

•x表示行,y表示列,m表示跨行个数,n表示跨列个数,string表示要写入的单元格内容,style表示单元格样式

"""

设置单元格样式

"""

import xlwt

def set_style(font_name, font_height, bold=False):

style = xlwt.XFStyle() # 初始化样式

font = xlwt.Font() # 为样式创建字体

font.name = font_name # 'Times New Roman'

font.bold = bold

font.color_index = 4

font.height = font_height

borders = xlwt.Borders()

borders.left = 6

borders.right = 6

borders.top = 6

borders.bottom = 6

style.font = font

style.borders = borders

return style

# 写excel

def write_excel(output_path):

f = xlwt.Workbook() # 创建工作簿

'''

创建第一个sheet:

sheet1

'''

sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) # 创建sheet

row0 = [u'业务',u'状态',u'北京',u'上海',u'广州',u'深圳',u'状态小计',u'合计']

column0 = [u'机票',u'船票',u'火车票',u'汽车票',u'其它']

status = [u'预订',u'出票',u'退票',u'业务小计']

# 生成第一行

for i in range(0, len(row0)):

sheet1.write(0, i, row0[i], set_style('Times New Roman', 220, True))

# 生成第一列和最后一列(合并4行)

i, j = 1, 0

while i < 4*len(column0) and j < len(column0):

sheet1.write_merge(i, i+3, 0, 0, column0[j], set_style('Arial', 220, True)) # 第一列

sheet1.write_merge(i, i+3, 7, 7) # 最后一列"合计"

i += 4

j += 1

sheet1.write_merge(21,21,0,1,u'合计',set_style('Times New Roman',220,True))

# 生成第二列

i = 0

while i < 4*len(column0):

for j in range(0,len(status)):

sheet1.write(j+i+1, 1, status[j])

i += 4

f.save(output_path)

if __name__ == '__main__':

write_excel('E:/demo.xls') # 保存文件.这里如果是.xlsx的话会打不开。

注意:如果对一个单元格重复操作,会引发error。所以在打开时加cell_overwrite_ok=True解决

table = file.add_sheet('sheet name',cell_overwrite_ok=True)

生成的demo.xls效果如下:

总结

以上所述是小编给大家介绍的Python3 读、写Excel文件的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

python3 写入excel_Python3 读、写Excel文件的操作方法相关推荐

  1. python读文件的三种方式_Python|读、写Excel文件(三种模块三种方式)

    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别: 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: import xlrd from xlut ...

  2. java jxl 写 excel文件_使用jxl读和写Excel文件(速成)

    同行整理,简单明了,快速上手! =============================正文1============================ 最近和Excel频繁亲密接触,主要将N个Exc ...

  3. oracle写excel文件,ORACLE-将oracle数据库中数据写入excel文件

    ORACLE-将oracle数据库中数据写入excel文件主要实现思路: 1.声明一个纪录,用来存储导出的数据: 2.使用游标取数据到纪录中: 3.使用utl_file将纪录中的数据写入excel文件 ...

  4. python怎么读写文件-python3 excle(python怎么读写excel文件)

    python读取已经打开的3个word和excle文件的路径 用 win32com 操控 word和Excel就可以实现 咋样把python写入excle中 # 需安装 xlrd-0.9.2 和 xl ...

  5. python导入excel散点图_Python 写excel文件并插入散点图

    这两天做小实验,需要分析结果,当然需要些图表.实验的算例少说也有几十个,一个个导入excel,太烦了.幸好,本人是个程序员. google了下,python写excel文件的方法不少,最后我选定了xl ...

  6. python打开excel文件画散点图_Python 写excel文件并插入散点图

    这两天做小实验,需要分析结果,当然需要些图表.实验的算例少说也有几十个,一个个导入excel,太烦了.幸好,本人是个程序员. google了下,python写excel文件的方法不少,最后我选定了xl ...

  7. 使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件

    使用Python解决对比出两个Excel文件中的不同项并将结果重新写入一个新的Excel文件 因为有统计成员到会情况的任务,每次汇总时都很麻烦,需要一个个对应腾讯会议导出名单的成员,然后在总表上进行标 ...

  8. pymatgen读/写各种文件

    PS:请见文末的打赏选项 pymatgen读/写各种文件 pymatgen是材料大数据计算的必备程序包了,其也作为API与materials project对接,可以批量下载自己想要的材料结构.性质, ...

  9. python库读取cif文件_Pymatgen读/写各种文件,pymatgen,读写

    pymatgen读/写各种文件 pymatgen是材料大数据计算的必备程序包了,其也作为API与materials project对接,可以批量下载自己想要的材料结构.性质,它也提供了大量VASP计算 ...

最新文章

  1. CentOS7下Django安装
  2. Puppet基于Master/Agent模式实现LNMP平台部署
  3. 直播预告:与九位专家聊聊Codec和AOM Summit
  4. Android震动vibrator系统开发全过程
  5. 两种参数类型_布尔参数这些缺点不能忍?不如试试枚举吧
  6. u大侠pe系统桌面计算机,WinPE系统的四种启动方法
  7. python中级_python复习之中级
  8. python入门——数字+字符串
  9. PHP在接下来的几年内将是主主流的
  10. UA MATH563 概率论的数学基础 中心极限定理19 概率测度的全变差收敛 Skorohod定理
  11. Vmware workstation 安装教程
  12. BSCI社会责任验厂对员工考勤和工资的标准和要求
  13. 用正则表达式替换手机号为星号*的写法
  14. DataGrid 嵌套应用
  15. win10安装Mingw,看这里!
  16. 斑马打印机(zebraZT410R-203dpi)打印RFID标签流程
  17. 魅族容器云平台基于Kubernetes自动化运维实践
  18. SpringBoot实现通过邮箱找回密码功能
  19. Arcgis软件应用(五)遥感图像地理配准、矢量化与地图制作
  20. AppiumDesktop学习总结

热门文章

  1. Linux简单基本命令
  2. Redis持久化-RDB
  3. java查看堆内对象_如何查看一个对象占用堆内存的大小
  4. Matplotlib——多图合并
  5. G++和C++区别和评测注意事项
  6. DeepStream框架整理
  7. 基于Qt的UDP协议实现及解析数据
  8. Linux平台Segmentation fault(段错误)调试方法
  9. 非极大值抑制(Non-Maximum Suppression,NMS)(转)
  10. 央行降息开始 房价下跌不行也要行