需要做一个疫情可视化的世界地图,从网上爬到的数据是每天的新增人数,需要每日的确诊人数,需要进行数据的累加,网上的帖子有的格式不好,有的内容太差,用起来不方便,万一以后对Excel操作就直接用。
xlrd库对excel的读操作
- 导入模块
import xlrd
- 打开Excel
data = xlrd.open_workbook(r'文件名.xlsx')
- 获得Sheet表
table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取
table = data.sheet_by_name('sheet_name') #通过名称获取
- 获得sheet的名字,行数,列数
print(table.name, table.nrows, table.ncols)
- 行操作与列操作
#获取该sheet中的有效行数
nrows = table.nrows
#返回由该行中所有的单元格对象组成的列表
table.row(rowx)
#返回该行的有效单元格长度
table.row_len(rowx)
#返回由该行中所有单元格的数据类型组成的列表
table.row_types(rowx, start_colx=0, end_colx=None)
#返回由该行中所有单元格的数据组成的列表
table.row_values(rowx, start_colx=0, end_colx=None)
#获取列表的有效列数
ncols = table.ncols
#返回由该列中所有的单元格对象组成的列表
table.col(colx, start_rowx=0, end_rowx=None)
#返回由该列中所有的单元格对象组成的列表
table.col_slice(colx, start_rowx=0, end_rowx=None)
#返回由该列中所有单元格的数据类型组成的列表
table.col_types(colx, start_rowx=0, end_rowx=None)
#返回由该列中所有单元格的数据组成的列表
table.col_values(colx, start_rowx=0, end_rowx=None)
- 单元格操作 第一个单元格的坐标为cell(0,0)
table.cell(rowx,colx) #返回单元格对象
table.cell_type(rowx,colx) #返回单元格中的数据类型
table.cell_value(rowx,colx) #返回单元格中的数据
xlwt库对Excel的写操作
- 导入模块
import xlwt
- 创建工作表
#创建workbook 对象
workbook = xlwt.Workbook(encoding='utf-8')
#创建工作表sheet
worksheet = workbook.add_sheet('sheet1')
#往表中写内容,第一各参数 行,第二个参数列,第三个参数内容
worksheet.write(row, col, label='content')
workbook.save('students.xls') #保存表为students.xls
- 写指定单元格
#往表中写内容,第row行,第col列,写入内容content
worksheet.write(row, col, label='content')
- 保存Excel 记得后缀名为xls xlsx打不开
#保存表为test.xls
workbook.save('text.xls')
问题总结
1.格式转换:cell单元格的内容text时,需要用str()函数转换成字符串形式才能操作
2.Excel的数字化日期是指现在距离1900/01/01以来的天数。
3.打开的Excel是不能进行写操作,需要关闭后才能操作
4.列表操作
list1 = [] # 空列表
list1.append(sheet0.cell(i, 1).value)