wanghuijie1

在python中,对excel表格读,写,追加数据,用以下三个模块:
1、wlrd 读取excel表中的数据
2、xlwt 创建一个全新的excel文件,然后对这个文件进行写入内容以及保存。
3、xlutils 读入一个excel文件,然后进行修改或追加,不能操作xlsx,只能操作xls。
一、读excel表
读excel要用到xlrd模块
1、导入模块

import xlrd

2、打开excel文件

table = data.sheets()[0]       #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u\'Sheet1\')#通过名称获取

  代码如下:

import xlrd
data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
table1 = data.sheets()[0]
table2 = data.sheet_by_index(0)
table3=data.sheet_by_name(u\'Sheet1\')
print(table1)
print(table2)
print(table3)

  返回:

<xlrd.sheet.Sheet object at 0x0000000002F7F208>
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
<xlrd.sheet.Sheet object at 0x0000000002F7F208>

3、获取行数和列数

import xlrd
data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
table = data.sheets()[0]
nrows = table.nrows
ncols = table.ncols
print("行数:%d\n列数:%d"%(nrows,ncols))

  返回:

1 行数:13
2 列数:3

4、获取整行和整列的值,以列表形式返回

rows = table.row_values(0)
cols = table.col_values(0)
print("rows:%s\ncols:%s"%(rows,cols))

  返回:

rows:[\'A1\', \'B1\', \'C1\']
cols:[\'A1\', \'A2\', \'A3\', \'A4\', \'A5\', \'A6\', \'A7\', \'A8\', \'A9\', \'A10\', \'A11\', \'A12\', \'A13\']

5、获取单元格数据

cell_A1 = table.cell_value(0,0)
cell_C4 = table.cell_value(3,2)
print("A1:%s\nC4:%s"%(cell_A1,cell_C4))

  返回:

A1:A1
C4:C4

还可以使用行列索引来获取单元格数据

cell_A1 = table.row(0)[0].value
cell_C4 = table.col(2)[3].value
print("A1:%s\nC4:%s"%(cell_A1,cell_C4))

  返回:

1 A1:A1
2 C4:C4

三、写excel操作
1、导入:

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(\'test\', cell_overwrite_ok=True)

其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False
4、向表中添加数据

1 sheet.write(0, 0, \'EnglishName\')  # 其中的\'0-行, 0-列\'指定表中的单元,\'EnglishName\'是向该单元写入的内容
2 sheet.write(1, 0, \'Marcovaldo\')
3 txt1 = \'中文名字\'
4 sheet.write(0, 1, txt1) 
5 txt2 = \'马可瓦多\'
6 sheet.write(1, 1, txt2)

5、保存

1 workbook.save(r\'e:\test1.xls\')

四、追加数据

1 import xlrd
2 import xlutils.copy
3 data = xlrd.open_workbook(r\'C:\Users\907968\Desktop\test222.xls\')
4 ws = xlutils.copy.copy(data)
5 table=ws.get_sheet(0)
6 table.write(0,3,\'D1\')
7 ws.save(r\'C:\Users\907968\Desktop\test222.xls\')

追加前:

1 A1 B1 C1

追加后:

1 A1 B1 C1 D1

 

 

sheet = workbook.add_sheet(\'test\', cell_overwrite_ok=True)

分类:

技术点:

相关文章: