python读取excel表格生成erlang数据
作者:Shay_黄 发布时间:2022-12-26 05:03:54
标签:python,excel,erlang
为了将excel数据自动转换成所需要的erlang数据,听同事说使用python会很方便简单,就自学了两天python,写了一个比较粗糙的python脚本,不过能用,有什么优化的地方请指教
代码如下:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
from openpyxl.reader.excel import load_workbook
import os
import os.path
def gen_data(filename):
wb = load_workbook('dataxlsx/' + filename + '.xlsx') # 加载文件所有分页
sheetnames = wb.get_sheet_names() # 获取所有分页的名字列表
ws = wb.get_sheet_by_name(sheetnames[0]) # 取第一个分页的数据
# print 'ws:', ws
# print "Work Sheet Titile:", ws.title # 分页名称
# print "Work Sheet Rows:", ws.max_row # 分页行数
# print "Work Sheet Cols:", ws.max_column # 分页列数
content = [] # 数据内容
id_list = [] # ID列表
# ========================start concat need data=================
content.append('%% this file is auto maked!\n')
content.append('-module(' + filename + ').\n')
content.append('-compile(export_all).\n')
for i in range(4, ws.max_row + 1): # 从表格第三行开始读取,由于range函数不包含文件尾,所以为了读到最后一行需+1
for j in range(ws.max_column):
if ws[i][j].value == None:
content.append(' ,""')
elif j == 0:
id_list.append(int(ws[i][j].value))
content.append('get(' + str(ws[i][j].value).strip() + ') ->\n')
content.append(' {r_' + filename + ', ' + str(ws[i][j].value).strip())
else:
content.append(' ,' + str(ws[i][j].value).strip())
content.append('};\n')
content.append('get(_) ->\n')
content.append(' not_match.\n')
content.append('length() ->\n')
content.append(' ' + str(ws.max_row - 1) + '.\n')
content.append('id_list() ->\n ' + str(id_list) + '.')
# ==============================end===========================
# 写入数据
f = file('./server/' + filename + '.erl','w+')
f.writelines(content)
print 'create new file:', filename + '.erl'
f.close() # 关闭通道
return
def start_gen():
# 删除旧的数据
delnames = os.listdir('./server')
for delname in delnames:
os.remove('./server/' + delname)
print 'delete old file:', delname
for _, _, filenames in os.walk('./dataxlsx'): # 遍历文件夹
for filename in filenames: # 遍历文件
find = filename.find('.xlsx') # 返回该文件名称长度
# print "find is:", find
if filename[0] == '~' or find == -1: # 文件名以'~'开头或者找不到文件名, 如以'.'开头的文件
continue
else:
split_list = filename.split('.') # 使用'.'分割文件名,获得[文件名,文件格式]
# print split_list
gen_data(split_list[0]) # 用文件名作为参数调用gen_data
start_gen()
来源:http://www.cnblogs.com/huangxiaoyi/p/7434851.html
0
投稿
猜你喜欢
- asp替换函数如下:Function ReplaceNoIgnoreCase(str,replStr) &n
- [参与测试的浏览器:IE6 / IE7 / IE8 / FF3 / OP10 / SF4 / Chrome2 ][操作系统:Windows]
- 前言:看本教程,必须先仔细看前言的内容,否则会进入误区!最近在做个性休闲服装内网站的设计课程,过程中发现,个性元素的应用成为最难的问题,第一
- 代码如下:<input name="file" type="file"> formsiz
- 目录1. Dash2. Pillow3. Colorama4. JmesPath5. Simplejson6. Emoji7. 进度条:pr
- 前言当我们运行测试函数时,我们希望确保测试函数在运行结束后,可以自己清理掉对环境的影响。这样的话,它们就不会干扰任何其他的测试函数,更不会日
- 首先你要确保你机器上面安装了python,其次,你还要确保你上面安装了Django。接下来,才能进入到搭建第一个Django应用程序很简单的
- 语法:CREATE TRIGGER trigger_name trigger_time trigger_eventON tbl_name F
- 今天在写PHP程序的时候总是出现这样的错误:Parse error: syntax error, unexpected end of fil
- 本文转自微信公众号:"算法与编程之美"1、前言侧滑是一个非常实用的选项组件,它在Android App应用中非常广泛,常
- 代码如下:--代码一DECLARE @cc INT SELECT NewsId,ROW_NUMBER() OVER(ORDER
- 本文实例为大家分享了Python曲线拟合的最小二乘法,供大家参考,具体内容如下模块导入import numpy as npimport ga
- Summary主要包括以下三种途径:使用独立的函数;使用torch.type()函数;使用type_as(tesnor)将张量转换为给定类型
- 秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用。也就是说,在默认情况下,所有CI开发项目
- 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心, mysql已经为我们提供了这样一个功
- 第一种情况是返回的游标是某个具体的表或视图的数据,如:SQL-Code:CREATE OR REPLACE P
- 目前SQL INJECTION的攻击测试愈演愈烈,很多大型的网站和论坛都相继被注入。这些网站一般使用的多为SQL SERVER数据库,正因为
- 什么是list?list 是一个序列!一串数据,这个串可以追加数据。我们可以把它看成大型商场内,儿童游玩串串车,它就像一趟一趟车厢一样,可以
- 熟悉css的开发者一定知道图像替换技术,也深知它的意义,Dave Shea 曾在他的一篇文章对此做了详细的总结,参看 Dave Shea’s
- 本文实例讲述了Python多重继承的方法解析执行顺序。分享给大家供大家参考,具体如下:任何实现多重继承的语言都要处理潜在的命名冲突, 这种冲