需求:

  客户通过 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. 半导体质量管理(LineWorks)_SPACE(统计过程分析和控制环境)

    LineWorks作为SEMI的质量管理,可为半导体制造商提供对实施标准,产品质量,质量和指标验证的全面控制.有许多附加模块和SPACE-Chart插件,可根据个人需求进行灵活调整. 三个主要特征是: ...

  2. Python内置函数和内置常量

    Python内置函数 1.abs(x) 返回一个数的绝对值.实参可以是整数或浮点数.如果实参是一个复数,返回它的模. 2.all(iterable) 如果 iterable 的所有元素为真(或迭代器为 ...

  3. 【vue】---- ElementUI 实现上传Excel

    1.功能描述:vue 项目使用 el-upload 实现上传 Excel. 2.功能效果:在el-upload基础上做了样式整改. 3.功能实现: // el-upload 上传组件 <temp ...

  4. 化繁就简,如何利用Spring AOP快速实现系统日志

    1.引言 有关Spring AOP的概念就不细讲了,网上这样的文章一大堆,要讲我也不会比别人讲得更好,所以就不啰嗦了. 为什么要用Spring AOP呢?少写代码.专注自身业务逻辑实现(关注本身的业务 ...

  5. Golang协程池(workpool)实现

    背景 因与工作相关,所以本文中的数据都进行了更改,但逻辑是一样的. 笔者的服务ServerA会请求服务ServerH获取一些数据,但ServerH的接口有个N秒内只能请求M次的限制,并返回false. ...

  6. HotSpot项目结构

    之前已经介绍了在Ubuntu 16.04上编译OpenJDK8的源代码和调试HotSpot源代码.这一章将介绍HotSpot项目的目录结构. HotSpot目录下主要由agent.make.src和t ...

  7. Mariadb之半同步复制集群配置

    首先我们来了解下在mariadb/mysql数据库主从复制集群中什么是同步,什么是异步,什么是半同步:所谓同步就是指主节点发生写操作事件,它不会立刻返回,而是等到从节点接收到主节点发送过来的写操作事件 ...

  8. Mariadb之复制过滤器

    mariadb的主从复制集群,默认情况下是把主库上的所有库进行复制,只要在主库上产生写操作,从库基于主库的二进制日志做重放,从而实现把主库的上的库表复制到从库:复制过滤器指的是我们仅复制一个或几个数据 ...

  9. day46 mysql进阶

    目录 一.约束条件 1 default默认值 2 unique唯一 2.1 单列唯一 2.2 联合唯一 3 primary key主键 3.1 主键的基本使用 3.2 主键的特性 4 auto_inc ...

  10. java 面向对象(十四):面向对象的特征二:继承性 (三) 关键字:super以及子类对象实例化全过程

    关键字:super 1.super 关键字可以理解为:父类的2.可以用来调用的结构:属性.方法.构造器3.super调用属性.方法:3.1 我们可以在子类的方法或构造器中.通过使用"supe ...