python整⾏写⼊excel_Python读取和写⼊Excel⽂件[整]
学习⽤Python处理Excel⽂件,这⾥主要⽤xlrd和xlwt模块,⽤前需要安装!本⽂是来⾃⼏篇博客和官⽹
另外,⼏篇博客的参考资料:
A:Excel数据的类型及组织⽅式
每⼀个Excel数据⽂件从上⾄下分为三个层级的对象:workbook: 每⼀个Excel⽂件就是⼀个workbook。sheet: 每⼀个workbook中可以包含多个sheet,具体就对应Excel中我们在左下脚所看到的“sheet1”,“sheet2”等。cell: 每⼀个sheet就是我们通常所看到的⼀个表格,可以含有m⾏,n列,每个确定的⾏号,列号所对应的⼀个格⼦就是⼀个cell。
B: 从Excel中读取数据
从⼀个既有的xlsx⽂件中读取数据,按照Excel⽂件的三个层级,分别做以下三个步骤
1. 打开workbook:
import xlrd
book = xlrd.open_workbook("myfile.xls")    #book就赋值为⼀个Excel⽂件了
注:
Book 类的⽅法、属性等:即就可以对上⾯的book进⾏操作了book.nsheets:  在Book对象中的⽂件有多少个worksheet
book.sheet_by_index(sheetx): 根据提供的sheetx索引来获取我们需要的sheet表,返回的是⼀个Sheet类的实例。
book.sheet_by_name(sheet_name): 根据提供的sheet_name来获取对应名称的sheet类对象,返回的也是⼀个Sheet类的对象
book.sheet_names(): 在Book对象中的所有sheet表的名称列表book.sheets(): 返回在Book对象中所有的Sheet对象实例列表
2. 打开所需的sheet:sh = book.sheet_by_index(0)  #获得⼀个sheet,也可以使名字获得print sh.name, sh.nrows, sh.ncols
注:
Sheet类⽅法、属性等:sh.cell(rowx, colx): 根据给出的⾏和列的参数获取得到cell类,返回⼀个Cell类实例对象sh.cell_type(rowx, colx): 返回对应的cell对象的Type类型sh.cell_value(rowx, colx): 返回对应的cell对象的value值sh.col(colx): 返回指定列的所有cell类对象序列sh.name: 返回sheet对象的名称sh.ncols: 返回在sheet对象中的列的数⽬sh.nrows: 返回在sheet对象中的⾏的数⽬
3. 获取对应cell的值:
python怎么读入ll(rowx=29, colx=3) #根据给出的⾏和列的参数获取得到cell类,返回⼀个Cell类实例对象
Cell类的属性、⽅法如下:Cell类对象有3种属性:ctype, value, xf_index
如果在excel⽂件打开的时候,formatting_info未启⽤的时候,xf_index是为None
下⾯列出了cell的类型,以及他们在python中所代表的值type symbol          type number                python value
XL_CELL_EMPTY            0                      空的字符串''
XL_CELL_TEXT              1                      unicode字符串XL_CELL_NUMBER            2                      float
XL_CELL_DATE              3                      float
XL_CELL_BOOLEAN          4                      int;1 --- True,0 --- False
XL_CELL_ERROR            5                      int代表是⼀个excel内部错误码;XL_CELL_BLANK            6                      空的字符
串'', 注意:这个类型仅仅会出现,当函数open_workbook(..,formatting_info=True)这样设置的时候
4.⼀个读取Excel的例⼦
import xlrd
book = xlrd.open_workbook("myfile.xls")
print "The number of worksheets is", book.nsheets
print "Worksheet name(s):", book.sheet_names()
sh = book.sheet_by_index(0)
print sh.name, sh.nrows, sh.ncols
print "Cell D30 is", sh.cell_value(rowx=29, colx=3)
for rx in ws):
w(rx)
C: Writing Excel Files
All the examples shown below can be found in the xlwt directory of the course material.读Excel xlrd模块,写⽤xlwt模块
1.    Creating elements within a Workbook创建⼀个Excel⽂件
Import xlwt
wb=xlwt.Workbook(“zc.xls”) #Workbook ⾸字母⼤写
2.    Worksheets 添加Sheet
Worksheets are created with the add_sheet method of the Workbook class.
To retrieve an existing sheet from a Workbook, use its get_sheet method. This method is particularly useful when the Workbook has been instantiated py.
Sheet1=wb.add_sheet(“sheetname”)
3.    Rows and Columns ⾏与列的表⽰:
row1 = w(1)
l(0)
4.    Cells
Cells can be written using either the write method of either the Worksheet or Row class.
sheet1.write(0,1,'B1')
row1.write(0,'A2')
5.    svave  保存⽂件:
wb.save(“zc.xls”)
6.    Excel写⼊的⼀个简单的例⼦
from xlwt import Workbook
book = Workbook()
sheet1 = book.add_sheet('Sheet 1')  #添加⼀个sheet
book.add_sheet('Sheet 2')
sheet1.write(0,0,'A1')  #通过sheet添加cell值
sheet1.write(0,1,'B1')
row1 = w(1)
row1.write(0,'A2')    #还可以通过row属性添加cell值
row1.write(1,'B2')
sheet2 = _sheet(1)
sheet2.flush_row_data()
sheet2.write(1,0,'Sheet 2 A3')
book.save('simple.xls')
D: 稍微复杂的例⼦和巩固
Ex1:
import xlrd
fname = "sample.xls"  #⼀个⽂件路径和⽂件名bk = xlrd.open_workbook(fname)    #打开⼀个workbook
shxrange = range(bk.nsheets)  #各个sheet之间的转换?try:    #提取sheet1?sh = bk.sheet_by_name("Sheet1") except:
print "no sheet in %s named Sheet1" % fname
return None
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)
ex2:
1
2 import xlrd
3 import xlwt
4
5 class OperExcel():
6  #读取Excel表
7  def rExcel(self,inEfile,outfile):
8    rfile = xlrd.open_workbook(inEfile)
9    #创建索引顺序获取⼀个⼯作表10    table = rfile.sheet_by_index(0)
11    #其他⽅式12    #table = rfile.sheets()[0]
13    #table = rfile.sheet_by_name(u'Sheet1')
14
15    #获取整⾏,整列的值16    w_values(0)
17    l_values(0)
18
19    #获取⾏数和列数20    nrows = ws - 1
21    ncols = ls
22
23    #循环获取列表的数据24    #for i in range(nrows):
25    #  w_values(i)
26    wfile = open(outfile,'w')
27    #获取第⼀列中的所有值28    for i in range(nrows):
29      #ll(i,0).value获取某⼀单元格的值30      wfile.ll(i,0).de('utf8') + '\n') 31    wfile.close()
32
33 #将数据写⼊Excel表34  def wExcel(self,infile,outEfile):
35    rfile = open(infile,'r')
36    buf = ad().split('\n')
37    rfile.close()
38
39    w = xlwt.Workbook()
40    sheet = w.add_sheet('sheet1')
41    for i in range(len(buf)):
42      print buf[i]
43      sheet.write(i,0,buf[i].decode('utf8'))
44    w.save(outEfile)
45
46 if __name__ == '__main__':
47  t = OperExcel()
48  t.rExcel('test.xls','test')
49  t.wExcel('test','1.xls')
50 #  作者:sunrise

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。