设为首页 收藏本站
查看: 819|回复: 0

[经验分享] python是个什么东西---pyExcelerator---解析和生成不带样式的xls

[复制链接]

尚未签到

发表于 2017-5-8 12:15:57 | 显示全部楼层 |阅读模式
# coding: UTF-8
from pyExcelerator.ImportXLS import parse_xls
from pyExcelerator import Workbook
import string
class ExcelHandler():
#读取excel文件的内容,返回一个包含行列的集合
#@param file_full_name:
#@return: sheet_list[[0,[a,a,a]],[1,[b,b,b]],[2,[c,c,c]],[3,[d,d,d]]]   
def read_xls(self, file_full_name):
results = []
#获得excel的所有"谢特"
sheets = parse_xls(file_full_name)
#迭代"谢特"-----------"谢特"[0]是"谢特"的名字."谢特"[1]是内容
for t in range(len(sheets)):
sheet = sheets[t]
result = []
#获得谢特[1]的长度,即,列数乘以行数的值
#已知有13个列,根据这个谢特[1]的长度得到一共有多少行
length = len(sheet[1]) / 13
#先创建一个满足excel格数的空数组
for ti in range(length + 1): #@UnusedVariable
result.append([" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " "])
#迭代该谢特中的单元格,按照坐标插入到结果集中
for point in sheet[1]:
str_point = str(point)
#从谢特中获得行和列
_x = string.atoi(str_point.replace(" ", "").split(',')[0].replace("(", ""))
_y = string.atoi(str_point.replace(" ", "").split(',')[1].replace(")", ""))
try:
if (str(_y) == '12') | (str(_y) == '1') | (str(_y) == '2') | (str(_y) == '4') | (str(_y) == '7'):
if unicode(sheet[1][point]).find(".0") >= 0:
result[_x][_y] = unicode(sheet[1][point]).replace(".0", "")
continue;
result[_x][_y] = unicode(sheet[1][point])
except:
print str(_x)+","+str(_y)+"---"+str(len(result))+"---"+str(t)
results.append([sheet[0], result])
return results
#根据一个包含所有谢特的集合生成Excel文件
#@param sheet_list:  sheet_list[[0,[a,a,a]],[1,[b,b,b]],[2,[c,c,c]],[3,[d,d,d]]]   
#@param save_file_name:
def create_sheet_list(self, sheet_list, save_file_name):
wb = Workbook()
for sheet in sheet_list:
ws = wb.add_sheet(sheet[0])
# 写内容
for i in range(len(sheet[1])):
line = sheet[1]
for j in range(len(line)):
item = line[j]
ws.write(i , j, item)
wb.save(save_file_name)
#################
## 测试 读取--导出
#################
#eh = ExcelHandler()
#results = eh.read_xls('./datafiles/finallyLIYIN.xls')
#eh.create_sheet_list(results, "./hehehe.xls")
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374686-1-1.html 上篇帖子: 用python将一个下所有的文件移动到另外一个目录 下篇帖子: python比较值类型是否为字符串
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表