python 读取excel内容,包含表格日期处理

python excel读写数据-LMLPHP

# -*- coding: utf- -*-
import xlrd
#读取excel表格
workbook=xlrd.open_workbook(r'D:\demo.xlsx')#打开excel文件
table = workbook.sheet_by_name('Sheet2')#将文件内容表格化
rows_num = table.nrows # 获取行
cols_num = table.ncols # 获取列 res=[]#定义一个数组
for rows in range(rows_num):
for cols in range(cols_num):
cell_value=table.cell(rows,cols).value#获取excel中单元格的内容
ctype=table.cell(rows,cols).ctype#获取单元格内容的数据类型:ctype:1整型 2浮点型 3日期 4布尔
if cell_value=='':#判断如果单元格内容为空
cell_value='--'#设置显示内容为--
res.append(cell_value)#将内容加入到res数组
elif ctype ==:#判断单元格内容为日期类型
cell_value=xlrd.xldate_as_datetime(cell_value,)#将内容转为datetime格式
cell_value=cell_value.strftime(("%Y/%m/%d"))#格式转换显示
res.append(cell_value)
elif isinstance(cell_value,unicode):#转码
cell_value=cell_value.encode('utf-8')
res.append(cell_value)
elif isinstance(cell_value,float):#转码
cell_value = str(cell_value)
cell_value = cell_value.decode('utf-8').encode('gb2312')
res.append(cell_value)
res.append('|')
res = ','.join(res)
res = res.split('|') for i in range(len(res)-):
print '第',i+,'行数据:',res[i].strip(',')

读取内容整数变为小数,有2个解决办法:

1、在excel中数字签名加个英文单引号: '

2、通过程序代码判断单元格内容的ctype来解决

if ctype == 2 and cell % 1 == 0.0: # ctype为2且为浮点
cell = int(cell) # 浮点转成整型
cell = str(cell) # 转成整型后再转成字符串,如果想要整型就去掉该行

python写入内容

# -*- coding: utf- -*-
import xlsxwriter
import time
#excel表格写数据 startime=time.time()#获取文件创建时间 workbook=xlsxwriter.Workbook('d:\mm.xlsx')#创建一个excel文件
worksheet=workbook.add_worksheet()#创建一个sheet title=[u'账号',u'密码']#设置表格title
worksheet.write_row('A1',title) #将title写入excel for i in range(,):
num0=bytes(i+)#因为默认从0开始,所以要加1
num=bytes(i)
row='A'+num0#设置行内容
data=[u'user'+num,num,]#设置列内容
worksheet.write_row(row,data)#将内容写入单元格
i+=#换行 workbook.close()#关闭excel endtime=time.time()#获取文件关闭时间
print endtime-startime#计算从创建到写入完成总花费时间
05-11 22:51