需求:

  客户通过 sftp 上传了一个 poc测试的 excel文件, 下到 云桌面 查看,发现一堆格式问题, 怎么办呢? 公司又不允许 吧文件下载到本地处理, 只能在 服务器上进行处理。
一堆的类型需要转换, 时间格式也是错误的,想想 可以借助 python 来做处理, 转成 csv格式,都转成 string 格式,接口也符合。
 
说罢,就这么干。 因为没怎么写过 python, 内心还是 恐惧的。
找了一个 解析 excel 的demo, 找个 改了改,以前处理excel 文件,打印字段测试是可以的,

问题1、这次 放到 服务器上运行 居然 读取第一个 单元格的字段就报 编码问题。

知道是编码问题,但是不知道why(以前在本地也处理过文件,没有问题。) 咨询了以前python 大神, 让我 encode(‘utf-8') 试试。
 
再执行成功了。 虽然还是不知道why ,文件本身就是 设置为 utf8 的编码。(还没去深究!!!!!)
 

2、内容转成 csv文件后,发现 顺序 不符合要求,想了一下,也想不出什么高端的方法,只得用最low的方法

 
庆幸的是处理的 内容还是比较少。不存在性能之说。
问题3: 字符串中有 表情符,没处理成功【网上找了几个 demo 都测试 不通过,就先不管了,直接先存库了】

总结:

在用python 处理 格式过程中,感觉也不是很难,难点是不知道可以用 哪些 包 可以处理,一些基本的 语法问题。 只是文本处理的话,还是不难的。
 
主要代码如下:(别笑,我只是个python小白)
'''
读 excel文件
'''
def read_from_excel(filepath):
data = xlrd.open_workbook(filepath)
table = data.sheets()[]
nor = table.nrows
nol = table.ncols print 'row: %d , colume: %d' % (nor, nol)
resutl = [] for i in range(, nor):
dict = {}
flag = True
# if i == :
# break
for j in range(nol):
title = table.cell_value(, j).encode('utf-8')
print(str(i) + '--' + str(j) + '---'+ title)
#print(chardet.detect(table.cell_value(i, j)))
value = (str(table.cell_value(i, j).encode('utf-8')).replace('\n', ''))
print(str(i) + '--' + str(j) + '---'+value)
# print value
if title == 'identitu_type':
if value == 'SSS':
value = 'SSS card'
elif value == 'PASSPORT':
value = 'Passport'
elif value == 'DRIVERLICENCE':
value = "Driver's license"
elif value == 'PHILHEALTH':
value = "PhilHealth"
elif value == 'UMID':
value = "UMID"
else:
flag = False
print(str(i) + '--' + str(j) + '---'+value) dict[title] = remove_emoji(value)
if flag:
resutl.append(dict) return resutl
'''
字典转 csv文件
'''
def nestedlist2csv(list, out_file):
with open(out_file, 'wb') as f:
title = []
w = csv.writer(f)
fieldnames=list[].keys() # solve the problem to automatically write the header
print fieldnames title = ['Name','id_card', 'phone','identitu_type','Date']
w.writerow(title)
for row in list:
print(row.values)
value = [row['Name'], row['id_card'], row['phone'], row['identitu_type'], row['Date']]
w.writerow(value)
 

(一)python 格式化 excel 格式的更多相关文章

  1. 小兴趣:用python生成excel格式座位表

    脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...

  2. python生成excel格式座位表

    脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...

  3. 利用python将excel数据解析成json格式

    利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...

  4. 分别用Excel和python进行日期格式转换成时间戳格式

    最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

  5. 如何使用python在保留原excel格式的前提下插入/修改数据

    一.需求分析: 统计的报表中需要每日查询当天数据并追加到原有的excel后面. 因为原始excel格式已经设定好,如果使用xlwt,仅仅指定设定我们要插入的单元格的格式,原始数据的格式会被初始化. 所 ...

  6. Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

    在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...

  7. Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式

    Python生成文本格式的excel\xlwt生成文本格式的excel\Python设置excel单元格格式为文本\Python excel xlwt 文本格式 解决: xlwt 中设置单元格样式主要 ...

  8. 第3.11节 Python强大的字符串格式化新功能:format字符串格式化的格式控制

                                                第3.11节 format字符串格式化的格式控制 一.    引言 上节介绍了四种format进行字符串格式化的 ...

  9. python读取excel,数字都是浮点型,日期格式是数字的解决办法

    excel文件内容: 读取excel: # coding=utf-8 import xlrd import sys reload(sys) sys.setdefaultencoding('utf-8' ...

随机推荐

  1. SpringBoot2.x入门:快速创建一个SpringBoot应用

    前提 这篇文章是<SpringBoot2.x入门>专辑的第2篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 常规的套路会建议使用Spring官方提 ...

  2. 简单案例:form表单应用向后端发数据

    效果如下图: 先新建一Django项目. 最后在terminal执行python manage.py runserver 8090 运行djago程序 浏览器输入http://127.0.0.1:80 ...

  3. python中lambda匿名函数与函数之间的关系

  4. 【Oracle】Oracle wrong result一则(优化器问题)

    现象如下: SYS@proc> select * from v$version where rownum=1; BANNER ---------------------------------- ...

  5. 每日一题 - 剑指 Offer 50. 第一个只出现一次的字符

    题目信息 时间: 2019-07-03 题目链接:Leetcode tag:哈希表 难易程度:简单 题目描述: 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字 ...

  6. td文字溢出显示省略号

    昨天遇到移动端表格td中文字溢出问题,写了溢出隐藏样式,居然没起作用! { overflow:hidden;//溢出隐藏 white-space:nowrap;//文字不换行 text-overflo ...

  7. 洛谷 P4042 [AHOI2014/JSOI2014]骑士游戏

    题意 有\(n\)个怪物,可以消耗\(k\)的代价消灭一个怪物或者消耗\(s\)的代价将它变成另外一个或多个新的怪物,求消灭怪物$的最小代价 思路 \(DP\)+最短路 这几天做的第一道自己能\(yy ...

  8. C++中复杂声明和定义的辨析

    0x00 前言 c++中的复杂声明往往令人无法下手,经常使人搞错这到底声明的是一个指针还是指针函数.但其实c++对于复杂声明是遵循一定的规则的,叫做变量名—>右--左-右规则. 0x01 规则解 ...

  9. Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车

    让我们来实现一个简单的 “电商购物车” 需求来了解一下如何使用 Newbe.Claptrap 进行开发. 业务需求 实现一个简单的 “电商购物车” 需求,这里实现几个简单的业务: 获取当前购物车中的商 ...

  10. Video.js随笔记

    下载与介绍 Video.js是一款web视频播放器,支持html5和flash两种播放方式.更有自定义皮肤,插件,组件,语言还有丰富的选项配置. 官网下载地址:https://videojs.com/ ...