【python小记】python操作excel文件

来源:互联网 发布:w两个世界知乎 编辑:程序博客网 时间:2024/05/18 01:37

题记:

最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本都第一时间考虑python,可以让我把大量时间放在解决问题的思路上,而不是语言本身。这个时候才体会到什么叫“life is short, you need python!”的精髓!


==========================分割线==================================

【CSV】

CSV是一种广泛使用的文件格式,所谓“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。出现在档案总管中的档案类型是「逗号分格」。excel文件可以直接保存为csv文件,在计算机中,csv也可以直接用excel打开,算是一种比较方便的操纵excel文件的方式吧。

主要是python自带csv的Module,可以直接import,它的操作方式也比较简单,就是普通的文件读写

打开,读取文件:

import csvfile = csv.reader(file('my.csv','rb'))for line in file:    for item in line:        print item
这里注意,如果文件是一个对象则要加入b属性,读出来的数据可以看作一个二维列表,每一行就是csv文件的一行,而每个item,就是逗号分隔的每个数据(即excel中的一个框)


写文件:

import csvwith open('eggs.csv', 'wb') as csvfile:    #写文件格式是以行为单位写,每行‘[’内字符串以‘,’分隔‘]’ 或者使用算术表达式如下    spamwriter = csv.writer(csvfile)    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])    #或是多行写    lists = [['1','2'],             ['3','4']]    spamwriter.writerows(lists)


【XLS】

先要装xlrd模块(读取xls):https://pypi.python.org/pypi/xlrd 

安装方法,解压文件,然后在命令行下进入文件夹,使用python setup.py install

import xlrdwb = xlrd.open_workbook('eggs.xls')sn = wb.sheet_names()  #获得工作所有表名print 'sheet names :'+str(sn)#wb.sheet_by_name('name')   通过工作表名进入工作表sh = wb.sheet_by_index(0)    #通过index进入工作表sheets = wb.sheets()  #获取所有工作表for sheet in sheets:    for row in range(sheet.nrows):        for col in range(sheet.ncols):            print sheet.cell(row,col).value

安装了xlrd可以读取xls文件的内容了,如果需要写xls文件,还要安装xlwt:https://pypi.python.org/pypi/xlrd

安装方法一致

import xlwt;wb = xlwt.Workbook()ws = wb.add_sheet('mysheet') ws.write(0, 0, 1.01)  #把表格想象成二维表,前2各参数是行列ws.write(0, 1, 'haha')ws.write(1,0,'A')ws.write(1,1,'B')ws.write(1,2,'SUM')ws.write(2, 0, 123)ws.write(2, 1, 456)ws.write(2, 2, xlwt.Formula("A3+B3"))wb.save('example.xls')

实际结果:




不仅如此,在写入文件的时候还可以加入格式:(转自:http://www.crifan.com/export_data_to_excel_file_in_python/)

import xlwt;from datetime import datetime; style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',num_format_str='#,##0.00');style1 = xlwt.easyxf(num_format_str='D-MMM-YY'); wb = xlwt.Workbook();ws = wb.add_sheet('A Test Sheet'); ws.write(0, 0, 1234.56, style0);ws.write(1, 0, datetime.now(), style1);ws.write(2, 0, 1);ws.write(2, 1, 1);ws.write(2, 2, xlwt.Formula("A3+B3")); wb.save('example.xls');


0 0
原创粉丝点击