问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于用python写入excel,新手求教

发布网友 发布时间:2022-04-22 03:49

我来回答

1个回答

热心网友 时间:2023-09-18 11:56


本篇文章给大家分享的内容是如何在python环境下操作excel ,有着一定的参考价值,有需要的朋友可以参考一下
一、可使用的第三方库
python中处理excel表格,常用的库有xlrd(读excel)表、xlwt(写excel)表、openpyxl(可读写excel表)等。xlrd读数据较大的excel表时效率高于openpyxl,所以我在写脚本时就采用了xlrd和xlwt这两个库。 这些库文件都没有提供修改现有excel表格内容的功能。一般只能将原excel中的内容读出、做完处理后,再写入一个新的excel文件。
可以使用pip search excel 查看一下,可以看到更多的开发包。
二、常见问题
使用python处理excel表格时,发现两个个比较难缠的问题:unicode编码和excel中记录的时间。
因为python的默认字符编码都为unicode,所以打印从excel中读出的中文或读取中文名的excel表或sheet时,程序提示错误UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-2: ordinal not in range(128)。这是由于在windows中,中文使用了gb2312编码方式,python将其当作unicode和ascii来解码都不正确才报出的错误。使用VAR.encode(‘gb2312’)即可解决打印中文的问题。(很奇怪,有的时候虽然能打印出结果,但显示的不是中文,而是一堆编码。)若要从中文文件名的excel表中读取数据,可在文件名前加‘u’表示将该中文文件名采用unicode编码。
有excel中,时间和日期都使用浮点数表示。可看到,当‘2013年3月20日’所在单元格使用‘常规’格式表示后,内容变为‘41353’;当其单元格格式改变为日期后,内容又变为了‘2013年3月20日’。而使用xlrd读出excel中的日期和时间后,得到是的一个浮点数。所以当向excel中写入的日期和时间为一个浮点数也不要紧,只需将表格的表示方式改为日期和时间,即可得到正常的表示方式。excel中,用浮点数1表示1899年12月31日。
三、常用函数
以下主要介绍xlrd、xlwt、datetime中与日期相关的函数。
import xlrdimport xlwtfrom datetimedef testXlrd(filename):
book=xlrd.open_workbook(filename)
sh=book.sheet_by_index(0) print "Worksheet name(s): ",book.sheet_names()[0] print 'book.nsheets',book.nsheets print 'sh.name:',sh.name,'sh.nrows:',sh.nrows,'sh.ncols:',sh.ncols print 'A1:',sh.cell_value(rowx=0,colx=1) #如果A3的内容为中文
print 'A2:',sh.cell_value(0,2).encode('gb2312')def testXlwt(filename):
book=xlwt.Workbook()
sheet1=book.add_sheet('hello')
book.add_sheet('word')
sheet1.write(0,0,'hello')
sheet1.write(0,1,'world')
row1 = sheet1.row(1)
row1.write(0,'A2')
row1.write(1,'B2')
sheet1.col(0).width = 10000
sheet2 = book.get_sheet(1)
sheet2.row(0).write(0,'Sheet 2 A1')
sheet2.row(0).write(1,'Sheet 2 B1')
sheet2.flush_row_data()
sheet2.write(1,0,'Sheet 2 A3')
sheet2.col(0).width = 5000
sheet2.col(0).hidden = True
book.save(filename)if __name__=='__main__':
testXlrd(u'你好。xls')
testXlwt('helloWord.xls')
base=datetime.date(1899,12,31).toordinal()
tmp=datetime.date(2013,07,16).toordinal() print datetime.date.fromordinal(tmp+base-1).weekday()相关推荐:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...突然晕倒在地上,当时呼吸困难,一会嘴唇就变黑了,10 突然感觉晕,接着晕倒发黑,无意识,脸色发青,额头倒冷汗,口唇变紫,呼 ... 孟母三迁的故事说明了对人的发展有重要的因素是? “孟母三迁”的故事主要反映了影响人发展的因素是()。 星座故事 | 银河之心,众神之师,人马座(射手座) 请问众泰T600低配的车怎么样? 把QQ群解散了之后 还能不能创建QQ群 QQ群解散了还能建吗大神们帮帮忙 林冲真实原型是谁 大头贴在红米上咋设置? python将数组写入excel文件 Python如何利用win32com模块,在指定位置新建Excel? python中怎么写excel文件 python如何快速创建多个指定的不同名称的工作表? 测试我的幸运数字 算命!!算幸运数字! 姓名测算 姓名算命 测名林秋红,1983.10.14-农历我的幸运数字 怎样查一个人的幸运数字 测一测自己的幸运数字 吃鸡怎么设置 游戏被人脸识别了,只有营地在线,该怎么加好友 为什么吃鸡观战关了还是可以看 为什么和平营地开了吃鸡还是用不了? 吃鸡转区入口在哪里 吃鸡营地工具如何开启? 吃鸡营地在哪 吃鸡显示好友营地在线是什么意思 吃鸡营地在线是什么意思 怎么用python语言在一个已存在的excel表里添加工作... python Pandas 如何实现excel透视的创建组功能 怎么用python写excel中的收益率 请问,同一个二台手机怎样能看到另一台手机... 两个手机,两个能关联吗?怎样才能看到另一... 大数据监控能否查看别人手机聊天记录 我有对方的但是没他的手机请问怎么能看到微... 别人的手机聊天记录我怎么能看到 别人手机的聊天记录我怎么能看到 两个手机,两个能关联吗?怎样才能看到另一... 我在网上订了高铁票怎么取 网上买高铁票。怎么取票啊? 网上买的高铁票怎么取票? 怎样才能在徽商银行查询余额? 徽商银行客服号码是多少? 微商官方投诉电话是多少 微商官方客服消费者投诉维权电话是多少 微商人工客服/微商投诉电话是多少 微信微商官方人工客服投诉电话是多少 微商投诉举报电话是多少