python中关于excel表个的操作

使用 python中的xlwt和xlrd模块进行操作

# 2003之前:Excel:xls
# 2003之后:Excel:xlsx
# xlrd:读取的模块:xls,xlsx
# xlwt:写分模块:xls
# openpyxl:既能读也能写,只能操作xlsx

所以后面一般操作excel表格最好是使用openpyxl进行操作

  1. # encoding=utf-8
  2. import time
  3. import xlrd
  4. import xlwt
  5. import openpyxl
  6. import xlutils
  7. from openpyxl.styles import PatternFill,Alignment,Font,colors
  8.  
  9. # 2003之前:Excel:xls
  10. # 2003之后:Excel:xlsx
  11. # xlrd:读取的模块:xls,xlsx
  12. # xlwt:写分模块:xls
  13. # openpyxl:既能读也能写,只能操作xlsx
  14.  
  15. wordBook = xlrd.open_workbook('D:\\tmp\\t2.xls')#整个Excel
  16. print type(wordBook)
  17. sheetList = wordBook.sheets()
  18. print sheetList
  19. sheet1 = sheetList[0]#Excelsheet
  20. print sheet1
  21. sheet2 = wordBook.sheet_by_index(0)
  22. print sheet2
  23. sheet3 = wordBook.sheet_by_name('test0827.txt')
  24. print sheet3
  25.  
  26. rowList = sheet3.row_values(9)
  27. # 通过下标取得某个单元格的值
  28. print rowList#整行的值
  29. colList = sheet3.col_values(1)
  30. print colList
  31. cell = sheet3.cell(1,4)#定位
  32. print cell.value#整列的值
  33. #workbook->整个excle
  34. # sheet->excle 的sheet
  35. # rowList ->整行的值
  36. # cell->某一个单元格的值
  37. #
  38. # 1、获取第1个sheet 中B10的值,用不少于两种方法。
  39. print colList[9]
  40. print rowList[1]
  41. print sheet3.cell(9,1).value
  42. print u'行数:',sheet3.nrows
  43. print u'列数:',sheet3.ncols
  44.  
  45. # 2、读取‘A2:D9’区域的所有数据
  46. for i in xrange(2,10):
  47. cell1 = sheet3.row_values(i)
  48. for j in cell1[0:4]:
  49. print j,
  50. print
  51.  
  52. for i in xrange(1,9):
  53. for j in xrange(4):
  54. c2 = sheet3.cell(i,j)
  55. print c2.value
  56. print
  57.  
  58. # xlwt
  59. # 1、生成workbook
  60. # 2、生成sheet
  61. # 3、生成eExcel
  62. #
  63. workBook = xlwt.Workbook(encoding='utf-8')
  64. print type(workBook)
  65. sheet1 = workBook.add_sheet('test3')
  66. sheet2 = workBook.add_sheet('test2')
  67. sheet4 = workBook.add_sheet('test4')
  68. print 'the sheet name is ',sheet1.name
  69. sheet1.write(r =2,c=2,label='test0827.txt data')
  70. sheet1.write(r =1,c=2,label=u'测试')
  71. sheet1.write(r =3,c=2,label=u'光荣之路')
  72. for i in xrange(4):
  73. for j in xrange(5):
  74. str1 = u'测试'+str(i)
  75. sheet2.write(r=i,c=j,label=str1)
  76.  
  77. # workBook.save('D:\\tmp\\t3.xls')
  78. # # 1、在上一题中,把‘A2:D9’区域读取的内容,写入一个xls 的表格中,
  79. # # 新的excle表格写入的区域是'A1:D8'
  80. for i in xrange(1,9):
  81. for j in xrange(4):
  82. c2 = sheet3.cell(i,j).value
  83. sheet1.write(r=(i-1),c=j,label=c2)
  84. for i in xrange(1,9):
  85. for j in xrange(4):
  86. c2 = sheet3.cell(i,j).value
  87. if isinstance(c2,(str,unicode)):
  88. c2 = c2.lower()
  89. sheet4.write(r=(i-1),c=j,label=c2)
  90. #
  91. #
  92. #
  93. #
  94. # # 2、复制excle1 的sheet1 到excles2 的sheet1
  95. #
  96. a = sheet3.nrows
  97. b = sheet3.ncols
  98.  
  99. for i in xrange(a):
  100. for j in xrange(b):
  101. c2 = sheet3.cell(i,j).value
  102. sheet4.write(r=i,c=j,label=c2)
  103.  
  104. workBook.save('D:\\tmp\\t3.xls')
  105.  
  106. openpyxl
  107. # workbook-sheet-cell
  108. workbook = openpyxl.load_workbook('D:\\tmp\\test0827.txt.xlsx')
  109. workbook1 = openpyxl.load_workbook(u'D:\\tmp\\测试.xlsx'.encode('gbk'))
  110. sheet1test = workbook1.get_sheet_by_name(u'员工信息表')
  111. rowData1 = sheet1test.rows
  112. for i in rowData1:
  113. print i
  114. print type(workbook)
  115. sheetList = workbook.get_sheet_names()
  116. for i in sheetList:
  117. print i
  118. sheet1 = workbook.get_sheet_by_name('test0827.txt')
  119. rowData = sheet1.rows
  120. # 行从1开始,列也是
  121. for i in rowData:
  122. # print type(i)
  123. # print i
  124. for j in i:
  125. print type(j)
  126. print j.coordinate,
  127. print j.value,
  128. print
  129.  
  130. colData1 = sheet1test.columns
  131. for i in colData1:
  132. # print type(i)
  133. # print i
  134. for j in i:
  135. # print type(j)
  136. print j.coordinate,
  137. print j.value,
  138. print
  139.  
  140. # 1、创建一个xlsx,通过rows方法,找出D8单元格的数据
  141.  
  142. rowData = sheet1.rows
  143. for i in rowData:
  144. # print type(i)
  145. # print i
  146. for j in i:
  147. # print type(j)
  148. if j.coordinate=='D8':
  149. print j.value
  150.  
  151. # 习题,通过列找D8
  152.  
  153. colData = sheet1.columns
  154. for i in colData:
  155. # print type(i)
  156. # print i
  157. for j in i:
  158. # print type(j)
  159. if j.coordinate=='D8':
  160. print j.value
  161.  
  162. # 更新一个单元格的值
  163. sheet1['A3'].value = 12
  164. workbook.save('D:\\tmp\\test0827.txt.xlsx')
  165.  
  166. # C1 = sheet1.cell(coordinate=,row=,columns=)
  167. c1 = sheet1.cell(coordinate='A7')
  168. print c1.value
  169. print c1.coordinate
  170. c1 = sheet1.cell(row=1,columns=7)
  171. print c1.value
  172. print c1.coordinate
  173.  
  174. # 2、把C2~C7的单元格,value写coordinate的值
  175.  
  176. for i in xrange(2,8):
  177. c1 = sheet1.cell(row=3,column=i)
  178. print c1.value
  179. c1.value =c1.coordinate
  180. print c1.value
  181.  
  182. # 读一个区域的时候要注意有多行多列
  183. str1 = sheet1['A2':'G7']
  184. for i in str1:
  185. for j in xrange(len(i)):
  186. print i[j].value,
  187. print
  188. print i[0].value
  189. i[0].value = i[0].coordinate
  190. print i[0].value
  191.  
  192. book1 = openpyxl.Workbook()
  193. book1sheet1 = book1.create_sheet('sheet1',index=0)
  194. print type(book1sheet1)
  195. print book1sheet1.title#sheet的名称
  196.  
  197. book1sheet1['A2'].value = u'测试写入成功'
  198. print book1sheet1['A2'].value
  199.  
  200. str5 = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
  201. str4 = [[u'姓名',u'时间',u'分数'],['lily',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()),34]]
  202. str2 = book1sheet1['A1':'C2']
  203. s = 0
  204. for i in str2:
  205. for j in xrange(len(i)):
  206. i[j].value= str4[s][j]
  207. s +=1
  208.  
  209. # 可以整行写入,但是不能保证在哪一行
  210. book1sheet1.append([u'姓名',u'时间',u'分数'])
  211. book1sheet1.append(['lily',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()),34])
  212. #
  213.  
  214. # book1.save('D:\\tmp\\t10.xlsx')
  215. # 合并单元格、单元格居中,修改背景颜色、字体的颜色
  216. # 合并sheet.merge_cells(range_string="合并的区域",start_row=开始的行
  217. # start_column= 开始的列,end_row=结束的行,end_column = 结束的列)
  218. book2 = openpyxl.Workbook()
  219. book1sheet2 = book2.create_sheet('test3',index=0)
  220. book1sheet2.merge_cells(range_string="A1:I1")
  221.  
  222. # 背景颜色
  223. # PatternFill(patternType='',fgColor='',bgColor='',
  224. # fill_type='',
  225. # start_color='',
  226. # end_color='')
  227. #
  228. fill = PatternFill(patternType='solid',fgColor=colors.GREEN)
  229. book1sheet2['A1'].fill = fill
  230.  
  231. # 字体的设置
  232. # Font(name='',
  233. # sz='',
  234. # b='',
  235. # i='',
  236. # charset='',
  237. # )
  238. book1sheet2['A1'].value = u'九九乘法表'
  239. font = Font(color = colors.WHITE,size=14)
  240. book1sheet2['A1'].font = font
  241.  
  242. # 对齐的方式
  243. a1 = Alignment(horizontal='center')
  244. book1sheet2['A1'].alignment = a1
  245.  
  246. # 写一个九九乘法表到excel中
  247. for i in xrange(1,10):
  248. list1 = []
  249. for j in xrange(1,i+1):
  250. if i >= j:
  251. ste = '%d*%d'%(j,i)+'='+str(j*i)
  252. book1sheet2.cell(row=i+1,column=j).value = ste
  253. # list1.append(ste)
  254. # book1sheet2.append(list1)
  255. book2.save('D:\\tmp\\t11.xlsx')

python中Excel表操作的更多相关文章

  1. python之excel表操作

    python对excel表操作主要用到三个库,xlrd,xlwt,xlutils,分别用于excel表读,写,修改操作,以下将一个简单介绍 一.生成excel表:xlwt类 新建excel表,并写入数 ...

  2. python 读excel表操作

    import xlrd # 打开文件 data = xlrd.open_workbook('测试表.xlsx') # 查看工作表 data.sheet_names() print("shee ...

  3. Python 3 mysql 表操作

    Python 3 mysql 表操作 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为 ...

  4. python中的赋值操作和复制操作

    之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...

  5. python中的赋值操作

    参考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(写的蛮好) python中的赋值操作“=” ...

  6. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  7. python中OS模块操作文件和目录

    在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...

  8. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  9. Python中的json操作

    Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...

随机推荐

  1. MySQL 数据库 -- 操作

    初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写. SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语言由IBM开 ...

  2. Http协议入门:

    HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点. 转自:http://www.ruanyifeng.com/blog/2016/08/http. ...

  3. ZT 分智网博客 – 职场、面试技巧、职业规划

    http://blog.fenzhi.com/archives/5148.html 分智网博客 – 职场.面试技巧.职业规划 软件工程师职位薪酬最高的25家中国公司 作者: 分智网 日期: 2013 ...

  4. 开闭原则(OCP)

    开闭原则具有理想主义的色彩,它是面向对象设计的终极目标.因此,针对开闭原则的实现方法,一直都有面向对象设计的大师费尽心机,研究开闭原则的实现方式.后面要提到的里氏代换原则(LSP).依赖倒转原则(DI ...

  5. Java的Stream流

    yi.控制台输入输出流, 1.读取控制台输入 Java的控制台输入由System.in完成.为了获得一个绑定到控制台的字符流,可以把System.in包装在一个BufferedReader对象中来创建 ...

  6. 可以在命令行直接使用密码来进行远程连接和远程拉取文件的命令:sshpass

      应用范围:可以在命令行直接使用密码来进行远程连接和远程拉取文件. 使用前提:对于未连接过的主机.而又不输入yes进行确认,需要进行sshd服务的优化: # vim /etc/ssh/ssh_con ...

  7. 前端构建之--gulp

    gulp相关插件: 1.del / gulp-clean 删除文件,用于清空文件 2.browser-sync 用于自动刷新浏览器 3.gulp-htmlmin 用于压缩html 4.gulp-cle ...

  8. ECharts 图表设置标记的大小 symbolSize 和获取标记的值

    ECharts 是百度出品,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) ...

  9. BZOJ 1050 旅行comf 并查集+枚举下界

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1050 题目大意: 给你一个无向图,N(N<=500)个顶点, M(M<=5 ...

  10. BZOJ3926:[ZJOI2015]诸神眷顾的幻想乡(广义SAM)

    Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日. 粉丝们非常热情,自发组织表演了一系列节目给幽香看. ...