python操作excel

摘要:
在python中,通过从excel表wlrd读取excel表xlwt中的数据,创建一个新的excel文件,然后写入并保存该文件。Xlutils读取Excel文件,然后修改或附加它。不能对xlsx进行操作,只能对xls进行操作。

在python中,对excel表格

wlrd 读取excel表中的数据 
xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。 
xlutils 读入一个excel文件,然后进行修改或追加,不能操作xlsx,只能操作xls。

一、读excel表

读excel要用到xlrd模块
1、导入模块

import xlrd

2、打开excel文件,表格从0计数

import xlrd
excel_calss = xlrd.open_workbook(r'C:UsersjokerDesktopecs.xlsx')
sheet = excel_calss.sheets()[0]              # 通过索引顺序获取
sheet = excel_calss.sheet_by_index(0)        # 通过索引顺序获取
sheet = excel_calss.sheet_by_name(u'Sheet1') # 通过名称获取

3、获取表格行数和列数,行,列从0计数

import xlrd
excel_calss = xlrd.open_workbook(r'C:UsersjokerDesktopecs.xlsx')
sheet = excel_calss.sheet_by_index(0)        # 通过索引顺序获取
num_rows = sheet.nrows       # 行数 int
num_cols = sheet.ncols       # 列数 int

4、获取表格整行和整列的值,以列表形式返回,行,列从0计数

sheet_row18 = sheet.row_values(18)  # 获取行得内容,列表形式
sheet_row19 = sheet.row_values(19)
sheet_col1 = sheet.col_values(1)    # 获取列内容,列表形式
sheet_col2 = sheet.col_values(2)

5、获取表格单元格数据

cell_A1 = sheet.cell(0,0).value     # 指定单元格A1数据
cell_5145 = sheet.row(19)[1].value  # 使用行索引确定单元格数据
cell_5145 = sheet.col(1)[1].value   # 使用列索引确定单元格数据

二、写excel操作

1、导入模块

import xlwt

2、创建workbook

workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
encoding:设置字符编码,一般要这样设置:w = Workbook(encoding=’utf-8’),就可以在excel中输出中文了。默认是ascii 
style_compression:表示是否压缩,不常用 

3、创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格

sheet = workbook.add_sheet('班级', cell_overwrite_ok=True)
其中的joker是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False 

4、向表中添加数据

sheet.write(0, 0, '名称')  # 其中的'0-行, 0-列'指定表中的单元,'名称'是向该单元写入的内容
sheet.write(0, 1, '年龄')
username = 'joker'
sheet.write(1, 0, username ) 
age = '18'
sheet.write(1, 1, age)

5、保存

workbook.save(r'C:UsersjokerDesktopecs.xls')

三、追加数据

import xlrd
import xlutils.copy
excel_calss = xlrd.open_workbook(r'C:UsersjokerDesktopecs.xls')
excel_copy = xlutils.copy.copy(excel_calss)
sheet=excel_copy.get_sheet(0)
sheet.write(0,2,'性别')
excel_copy.save(r'C:UsersjokerDesktopecs.xls')
# 追加前:
# 姓名 年龄
# 追加后:
# 姓名 年龄 性别

四、csv转化为excel,PYTHON在生成excel的时候注意是文件扩展名要以2003 为准,保存文件名扩展名改成 xls

import csv
import xlwt

workbook = xlwt.Workbook()
sheet2 = workbook.add_sheet("Sheet 2", cell_overwrite_ok=True)
file = open(r'D:label.csv')
lines = csv.reader(file)
r = 0
for line in lines:
    col = 0
    for c in line:
        sheet2.row(r).write(col,c, style=xlwt.Style.default_style)
        #print(c,end=' ')
        col += 1
    r += 1
    sheet2.flush_row_data()
file.close()   
workbook.save("csv2excel.xls")

五、 EXCEL通过请求下载

from io import BytesIO
import xlsxwriter

def filexlsx(request):
    url = "拼接字符串"
    time_str = str(datetime.datetime.today().time()).split('.')[0]
    date_str = str(datetime.datetime.today().date())
    filename_str = date_str + '_' + time_str+'.xlsx'
    dataExecl = Page_data.dataexcel # 数据
    if dataExecl:
        x_io = BytesIO()
        work_book = xlsxwriter.Workbook(x_io)
        work_sheet = work_book.add_worksheet("uid_video")
        work_sheet.write(0, 0, 'uid')  # 其中的'0-行, 0-列'指定表中的单元,'uid'是向该单元写入的内容
        work_sheet.write(0, 1, 'url_video')

        hang = 0
        for key in dataExecl:
            if dataExecl.get(key):
                hang += 1
                line = 0
                work_sheet.write(hang, line, key)
                line = 1
                for value in dataExecl[key]:
                    work_sheet.write(hang, line, url + key + '/' + value)
                    hang += 1
            else:
                pass

        work_book.close()
        res = HttpResponse()
        res["Content-Type"] = "application/octet-stream"
        res["Content-Disposition"] = "filename=%s" % filename_str
        res.write(x_io.getvalue())
        return res
    else:
        return HttpResponse('500')

免责声明:文章转载自《python操作excel》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle中游标的使用android 随手记 读写文件的几种方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c# 操作Excel

基本操作类 public class ExcelUtil { public void ReleaseCOM(object pObj)//释放资源 { try { System.Runtime.InteropServi...

python流程控制if判断与循环(for、while)

目录 流程控制if判断与循环for、while 一、if判断 1.1单分支 1.2双分支(1) 1.2双分支(2) 1.3多分支(1) 1.3多分支(2) 二、while循环 2.1 while循环 2.2while + break 2.3while + continue 2.4 while 循环嵌套 2.5tag控制循环退出 2.6whil...

java的(SXSSF)EasyExcel阿里开源excel导出和XSSF导出简单示例

一、EasyExcel阿里开源excel导出(SXSSF) 参考链接:EasyExcel阿里开源excel导出  1、建立映射到excel文件的映射类,然后get和set import com.alibaba.excel.annotation.ExcelProperty; public class DownloadAjgl { @ExcelPro...

phpexcel单元格内换行

我说的这个换行不是字多了,自动换行的那种,是在特定位置添加换行符 代码如下: $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A4', “Hello World”); 然后注意两点 一是要有下面的代码配合 $objPHPExcel->getActiveSh...

python新建txt文件,并逐行写入数据

#coding=utf-8txtName = "codingWord.txt"f=file(txtName, "a+")for i in range(1,100): if i % 2 == 0: new_context = "C++" + ' ' f.write(new_context) else:...

Python 基础(二)

一、def 函数 python 提供了函数功能,可以将想要在程序中重复使用的部分功能抽象成一个函数,以方便程序调用,或者提供给其他模块使用 def function_name(parameters): expressions python 使用 def 开始函数定义,紧接着是函数名,括号内部为函数的参数,内部为函数的具体功能实现代码,如果想要函数有...