zoukankan      html  css  js  c++  java
  • 【python小记】python操作excel文件

    题记:

    最近因为工作需要,学习了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 csv
    file = csv.reader(file('my.csv','rb'))
    for line in file:
        for item in line:
            print item
    

    这里注意,如果文件是一个对象则要加入b属性,读出来的数据可以看作一个二维列表,每一行就是csv文件的一行,而每个item,就是逗号分隔的每个数据(即excel中的一个框)


    写文件:

    import csv
    with 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 xlrd
    wb = 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');



  • 相关阅读:
    hiho_1139_二分+bfs搜索
    hiho_1138_island_travel
    google_apactest_round_A_problem_D
    hiho1122_二分图匈牙利算法
    hiho1123_好配对
    hiho1096_divided_product
    hiho1099_constellation
    hiho1093_spfa
    hiho1092_have lunch together
    【ipad神坑】ipad麦克风听不到声音怎么回事 微信QQ语音视频对方都听不到
  • 原文地址:https://www.cnblogs.com/voidsky/p/5373937.html
Copyright © 2011-2022 走看看