天才领路者

终于理解python如何写入excel

发布时间: 2019-08-25 12:21:28

学习Python的过程中,我们会遇到Excel的读写问题。通过搜索得知,我们可以使用xlwt module将数据写入Excel表格,使用xlrd module从Excel读取数据。那么python如何写入excel呢?一起来了解下吧:   python如何写入excel  

python如何写入excel

  1.读取Excel(需要安装xlrd):   #-*- coding: utf8 -*-   import xlrd   fname = "reflect.xls"   bk = xlrd.open_workbook(fname)   shxrange = range(bk.nsheets)   try:    sh = bk.sheet_by_name("Sheet1")   except:    print "no sheet in %s named Sheet1" % fname   #获取行数   nrows = sh.nrows   #获取列数   ncols = sh.ncols   print "nrows %d, ncols %d" % (nrows,ncols)   #获取*行*列数据    cell_value = sh.cell_value(1,1)   #print cell_value   row_list = []   #获取各行数据   for i in range(1,nrows):    row_data = sh.row_values(i)    row_list.append(row_data)   2.写入Excel(需安装pyExcelerator)   from pyExcelerator import *   w = Workbook()  #创建一个工作簿   ws = w.add_sheet('Hey, Hades')  #创建一个工作表   ws.write(0,0,'bit') #在1行1列写入bit   ws.write(0,1,'huang') #在1行2列写入huang   ws.write(1,0,'xuan') #在2行1列写入xuan   w.save('mini.xls')  #保存   3.再举个自己写的读写Excel的例子   读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。    #-*- coding: utf8 -*-   import xlrd   from pyExcelerator import *   w = Workbook()    ws = w.add_sheet('Sheet1')    fname = "reflect.xls"   bk = xlrd.open_workbook(fname)   shxrange = range(bk.nsheets)   try:    sh = bk.sheet_by_name("Sheet1")   except:    print "no sheet in %s named Sheet1" % fname   nrows = sh.nrows   ncols = sh.ncols   print "nrows %d, ncols %d" % (nrows,ncols)   cell_value = sh.cell_value(1,1)   #print cell_value   row_list = []   mydata = []   for i in range(1,nrows):    row_data = sh.row_values(i)    pkgdatas = row_data[3].split(',')    #pkgdatas.split(',')    #获取每个包的前两个字段    for pkgdata in pkgdatas:     pkgdata = '.'.join((pkgdata.split('.'))[:2])     mydata.append(pkgdata)    #将列表排序    mydata = list(set(mydata))    print mydata    #将列表转化为字符串    mydata = ','.join(mydata)    #写入数据到每行的*列    ws.write(i,0,mydata)    mydata = []    row_list.append(row_data[3])   #print row_list   w.save('mini.xls')   4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做:    #-*-coding:utf8-*-   import xlrd   import os   import shutil   fname = "./excelname.xls"   bk = xlrd.open_workbook(fname)   shxrange = range(bk.nsheets)   try:    #打开Sheet1工作表    sh = bk.sheet_by_name("Sheet1")   except:    print "no sheet in %s named Sheet1" % fname   #获取行数   nrows = sh.nrows   #获取列数   ncols = sh.ncols   #print "nrows %d, ncols %d" % (nrows,ncols)   #获取*行*列数据   cell_value = sh.cell_value(1,1)   #print cell_value   row_list = []   #range(起始行,结束行)   for i in range(1,nrows):    row_data = sh.row_values(i)    if row_data[6] == "HXB":     filename = row_data[3]+".apk"     #print "%s %s %s" %(i,row_data[3],filename)     filepath = r"./1/"+filename     print "%s %s %s" %(i,row_data[3],filepath)     if os.path.exists(filepath):      shutil.copy(filepath, r"./myapk/")   补充一个使用xlwt3进行Excel文件的写操作。   import xlwt3   if __name__ == '__main__':       datas = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]#二维数组       file_path = 'D:\test.xlsx'       wb = xlwt3.Workbook()       sheet = wb.add_sheet('test')#sheet的名称为test       #单元格的格式       style = 'pattern: pattern solid, fore_colour yellow; '#背景颜色为黄色       style += 'font: bold on; '#粗体字       style += 'align: horz centre, vert center; '#居中       header_style = xlwt3.easyxf(style)       row_count = len(datas)       col_count = len(datas[0])       for row in range(0, row_count):            col_count = len(datas[row])            for col in range(0, col_count):               if row == 0:#设置表头单元格的格式                   sheet.write(row, col, datas[row][col], header_style)               else:                   sheet.write(row, col, datas[row][col])       wb.save(file_path)   python数据如何写入excel表格   安装: xlsxwriter第三方库   code:   #!/usr/bin/env/python   #_*_coding:utf-8_*_   #Data:2017-08-13   #Auther:苏莫   #Link:http://blog.csdn.net/lingluofengzang   #PythonVersion:python2.7   #filename:xlsx.py   import sys   # import os   import xlsxwriter   '''   pip install xlsxwriter   '''   reload(sys)   sys.setdefaultencoding("utf-8")   # path = os.path.dirname(os.path.abspath(__file__))   # 建立文件   workbook = xlsxwriter.Workbook("text.xlsx")   # 可以制定表的名字   # worksheet = workbook.add_worksheet('text')   worksheet = workbook.add_worksheet()   # 设置列宽   # worksheet.set_column('A:A',10)   # 设置祖体   bold = workbook.add_format({'bold':True})   # 定义数字格式   # money = workbook.add_format({'num_format':'$#,##0'})   # 写入带粗体的数据   worksheet.write('A1','data',bold)   worksheet.write('B1','work')   '''     worksheet.write(0, 0, 'Hello')          # write_string()   worksheet.write(1, 0, 'World')          # write_string()   worksheet.write(2, 0, 2)                # write_number()   worksheet.write(3, 0, 3.00001)          # write_number()   worksheet.write(4, 0, '=SIN(PI()/4)')   # write_formula()   worksheet.write(5, 0, '')               # write_blank()   worksheet.write(6, 0, None)             # write_blank()   '''   worksheet.write('A3',15)   worksheet.write('B3',20)   worksheet.write('C3',44)   worksheet.write('D3',36)   # xlsx计算数据   worksheet.write('E3','=SUM(A3:D3)')   '''   建立Chart对象: chart = workbook.add_chart({type, 'column'})   Chart: Area, Bar, Column, Doughnut, Line, Pie, Scatter, Stock, Radar   将图插入到sheet中: worksheet.insert_chart('A7', chart)   '''   # 定义插入的图标样式   chart = workbook.add_chart({"type":'column'})   headings = ['a','b','c']   data = [       [1,2,3,4,5],       [2,4,6,8,10],       [3,6,9,12,15],   ]   # 按行插入数据   worksheet.write_row('A4',headings)   # 按列插入数据   worksheet.write_column('A5',data[0])   worksheet.write_column('B5',data[1])   worksheet.write_column('C5',data[2])   # 图行的数据区   # name:代表图例名称;   # categories:是x轴项,也就是类别;   # values:是y轴项,也就是值;   chart.add_series({       'name':'=Sheet1!$B$4',       'categories':'=Sheet1!$A$5:$A$9',       'values':'=Sheet1!$B$5:$B$9',   })   chart.add_series({       'name':['Sheet1', 3, 2],       'categories':['Sheet1', 4, 0, 8, 0],       'values':['Sheet1', 4, 2, 8, 2],   })   # 图形的标题   chart.set_title ({'name': 'Percent Stacked Chart'})   # 图形X轴的说明   chart.set_x_axis({'name': 'Test number'})   # 图形Y轴的说明   chart.set_y_axis({'name': 'Sample length (mm)'})   # 设置图表风格   chart.set_style(11)   # 插入图形,带偏移   worksheet.insert_chart('D12',chart,{'x_offset': 25, 'y_offset': 10})   workbook.close()   Python如何对Excel进行读写   # -*- coding: utf-8 -*-   #导入xlwt模块   import xlwt   # 创建一个Workbook对象,这就相当于创建了一个Excel文件   book = xlwt.Workbook(encoding='utf-8', style_compression=0)   '''   Workbook类初始化时有encoding和style_compression参数   encoding:设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。   默认是ascii。当然要记得在文件头部添加:   #!/usr/bin/env python   # -*- coding: utf-8 -*-   style_compression:表示是否压缩,不常用。   '''   #创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。   # 在电脑桌面右键新建一个Excel文件,其中就包含sheet1,sheet2,sheet3三张表   sheet = book.add_sheet('test', cell_overwrite_ok=True)   # 其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False   # 向表test中添加数据   sheet.write(0, 0, 'EnglishName')  # 其中的'0-行, 0-列'指定表中的单元,'EnglishName'是向该单元写入的内容   sheet.write(1, 0, 'Marcovaldo')   txt1 = '中文名字'   sheet.write(0, 1, txt1.decode('utf-8'))  # 此处需要将中文字符串解码成unicode码,否则会报错   txt2 = '马可瓦多'   sheet.write(1, 1, txt2.decode('utf-8'))   # *,将以上操作保存到指定的Excel文件中   book.save(r'e:test1.xls')  # 在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。否则,可能会报错   python如何将数据写入excel   Python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取excel是不能对其进行操作的:xlrd.open_workbook()方法返回xlrd.Book类型,是只读的,不能对其进行操作。而xlwt.Workbook()返回的xlwt.Workbook类型的save(filepath)方法可以保存excel文件。   因此对于读取和生成Excel文件都非常容易处理,但是对于已经存在的Excel文件进行修改就比较麻烦了。不过,还有一个xlutils(依赖于xlrd和xlwt)提供复制excel文件内容和修改文件的功能。其实际也只是在xlrd.Book和xlwt.Workbook之间建立了一个管道而已。   xlutils.copy模块的copy()方法实现了这个功能,示例代码如下:   from xlrd import open_workbook   from xlutils.copy import copy   rb = open_workbook('m:\1.xls')   #通过sheet_by_index()获取的sheet没有write()方法   rs = rb.sheet_by_index(0)   wb = copy(rb)   #通过get_sheet()获取的sheet有write()方法   ws = wb.get_sheet(0)   ws.write(0, 0, 'changed!')   wb.save('m:\1.xls')   练习代码(通过xlrd 读取 & 写入,再借用copy进行保存):   特别注意:由于copy保存实质上是通过xlwt进行保存的,而实际上xlwt保存的文件。          而通过xlwt只能写入xls文件,不能写入xlsx文件。   import xlrd   from xlwt import *   from xlutils.copy import copy   xlsfile = 'test.xls'   book = xlrd.open_workbook(xlsfile)   sheet_name = book.sheet_names()   print(sheet_name)   sheet = book.sheet_by_index(1)   nrows = sheet.nrows   ncols = sheet.ncols   print(nrows)   print(ncols)   row_data = sheet.row_values(0)   col_data = sheet.col_values(0)   print(row_data)   print(col_data)   cell_value = sheet.cell_value(3,0)   print(cell_value)   cell_value2 = sheet.cell(3,0)   print(cell_value2)   sheet.put_cell(1,2,1,"test",0)   cell_value2 = sheet.cell(1,1)   print(cell_value2)   #保存xlsfile   wb = copy(book)   wb.save(xlsfile) Python向excel中写入数据   具体代码如下:   #!/usr/bin/env python   # coding=utf-8   from xlwt import *   #需要xlwt库的支持   #import xlwt   file = Workbook(encoding = 'utf-8')   #指定file以utf-8的格式打开   table = file.add_sheet('data')   #指定打开的文件名   data = {           "1":["张三",150,120,100],           "2":["李四",90,99,95],           "3":["王五",60,66,68]           }   #字典数据   ldata = []   num = [a for a in data]   #for循环指定取出key值存入num中   num.sort()   #字典数据取出后无需,需要先排序   for x in num:   #for循环将data字典中的键和值分批的保存在ldata中       t = [int(x)]       for a in data[x]:           t.append(a)       ldata.append(t)   for i,p in enumerate(ldata):   #将数据写入文件,i是enumerate()函数返回的序号数       for j,q in enumerate(p):           # print i,j,q           table.write(i,j,q)   file.save('data.xlsx')  

更多培训课程,学习资讯,课程优惠,课程开班,学校地址等学校信息,请进入 天才领路者网站详细了解
咨询电话:400-850-8622

相关文章

最新文章

相关课程

温馨提示:提交留言后老师会第一时间与您联系! 热线电话:400-850-8622