python excel写入加前缀_python excel写入及追加写入
# -*- coding:utf-8 _*-
"""
@author:Administrator
@file: excel.py
Description :
如果行数是1000的倍数,进行一次flush,如果行数超过65536,
新开一个sheet,如果超过3个sheet,则新建一个文件
@time: 2018/10/31
"""
import os
import xlwt
from xlrd import open_workbook
from xlutils.copy import copy
from configs.config import ConfigENum
MAX_ROW_NUM = 65536
MAX_SHEET_NUM = 3
class XLS:
def __init__(self, name, captionlist: list, typelist: list, encoding='utf8', flushBound=1000):
"""
:type captionlist: list
:type typelist: list
"""
self.name = name
self.captionlist = captionlist[:]
self.typeList = typelist[:]
self.encoding = encoding
self.flushBound = flushBound
self.bk = xlwt.Workbook(encoding=self.encoding, style_compression=0)
self.workbookIndex = 1
self.row = 0
self.excel_name = None
self.sheet = None
self.sheetindex = 0
# self._add_sheet()
def _add_sheet(self):
if self.sheetindex != 0:
# This method is used to save the Workbook to a file in native Excel format.
self.bk.save(self.name + str(self.sheetindex) + ".xls")
# create new workbook
if self.sheetindex > MAX_SHEET_NUM:
self.workbookIndex += 1
self.bk = xlwt.Workbook(encoding=self.encoding, style_compression=0)
self.sheetindex = 1
# a new sheet
index=self.sheetindex
print("self.sheet_index=",index)
self.sheet = self.bk.add_sheet(self.name +
index.__str__(),
cell_overwrite_ok=False)
for i in range(len(self.captionlist)):
# This method is used to write a cell to a :class:`Worksheet`
self.sheet.write(0, i, self.captionlist[i])
self.row = 1
def write(self, data: list):
"""
:type data: list
"""
# The row of current sheet > the max rows of sheet then create a new sheet
if self.row > MAX_ROW_NUM:
self.sheetindex += 1
self._add_sheet()
self._add_sheet()
for i in data:
for j in range(len(i)):
if self.typeList[j] == "num":
try:
self.sheet.write(self.row, j, float(i[j]))
except:
raise ValueError("{} is not a number".format(i[j]))
else:
self.sheet.write(self.row, j, i[j])
# when rows =1000 then flush rows
if self.row % self.flushBound == 0:
self.sheet.flush_row_data()
self.row += 1
@staticmethod
def __find_file(keyword):
for root, d, files in os.walk(ConfigENum.DATA_PATH.value):
for file in files:
if keyword in file:
file = os.path.join(root, file)
return file
return False
def add_write(self, datas):
result=self.__find_file(self.name)
if not result:
self.write(datas)
self.save()
return "ok"
if self.row > MAX_ROW_NUM:
self.sheetindex += 1
self._add_sheet()
# read a excel file
self.bk = open_workbook(result)
# get the rows of sheet
rows = self.bk.sheets()[self.sheetindex].nrows
# Copy an :class:`xlrd.Book` into an :class:`xlwt.Workbook`
excel = copy(self.bk)
self.sheet = excel.get_sheet(self.sheetindex)
self.row = rows
for data in datas:
# [1,2,3,4]
for j in range(len(data)):
self.sheet.write(self.row, j, data[j]) # xlwt对象的写方法,参数分别是行、列、值
if self.row % self.flushBound == 0:
self.sheet.flush_row_data()
self.row += 1
self.excel_name = os.path.join(ConfigENum.DATA_PATH.value,
self.name + self.workbookIndex.__str__() + ".xls")
excel.save(self.excel_name)
def save(self):
self.excel_name = os.path.join(ConfigENum.DATA_PATH.value,
self.name + self.workbookIndex.__str__() + ".xls")
self.bk.save(self.excel_name)
# if __name__ == "__main__":
# caption_list = ["name", "gender", "age"]
# type_list = ["str", "str", "num"]
# input_data = ["Lili", "M", 25]
# excl=XLS("test",caption_list,type_list)
# excl.write(input_data)
# excl.save()
python excel写入加前缀_python excel写入及追加写入相关推荐
- python怎么添加csv模式_python对csv文件追加写入列的方法
python对csv文件追加写入列,具体内容如下所示: 原始数据 [外链图片转存失败(img-zQSQWAyQ-1563597916666)(C:\Users\innduce\AppData\Roam ...
- python对excel操作简书_python Excel 写
1.优点 一.功能比较强 相对而言,这是除Excel自身之外功能最强的工具了.比如我就用到了它提供的:字体设置.前景色背景色.border设置.视图缩放(zoom).单元格合并.autofilter. ...
- python写excel文件不覆盖_python excel多sheet存储,同sheet不覆盖追加数据
1.多sheet存储 方式一:读取数据库并存入excel多个sheet import cx_Oracle import pandas as pd conn_oracle = cx_Oracle.con ...
- python写入mysql数据库_python调用http接口,数据写入mysql数据库并下载录音文件
写个脚本一共完成了三件事: 第一,python调用http接口, 第二,把调用到的数据写入mysql数据库, 第三,python调用wsdl接口,获取录音文件, import time import ...
- python将结果写入txt文件_python(如何将数据写入本地txt文本文件)
一.读写txt文件 1.打开txt文件 file_handle=open('1.txt',mode='w') 上述函数参数有(1.文件名,mode模式) mode模式有以下几种: #w 只能操作写入 ...
- python输出中文加数字_python处理“#”开头加数字的html字符方法
python如何处理""开头加数字的html字符,比如:风水这类数据. 用python抓取数据时,有时会遇到想要数据是以""开头加数字的字符,比如图中所示的这些 ...
- python dialect='excel'是什么意思_python excel自动化写入大数据量数据
我们在做测试过程中,很多时候需要用到数据,例如我们要给excel中写入100万数据,首先大家想到的是我用python的xlrd直接写就好了,但是我们在运行时会发现: File "C:\Use ...
- python爬取mysql数据_Python爬取数据并写入MySQL数据库的实例
Python爬取数据并写入MySQL数据库的实例 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python爬取数据并写入MySQL数据库的实例.txt ] (友 ...
- python excel数据处理 空格替换_Python/Excel/SPSS/SQL数据处理方法比较之5 - 空格清理...
我说的空格清理,是存在于字符串前后(以及中间)的空格. 做过数据清洗才知道空格有多么恶心(平静脸 Python 1.左右两侧空格 如果不使用包,则对于一个字符串左右两边的空格,可以使用字符串函数str ...
最新文章
- linux服务器没网情况下手动安装软件几个方法
- Spring Boot 热部署入门
- (一)MySQL优化之索引优化
- (Java 多线程系列)java synchronized详解
- Pytorch——DataLoader(批训练)
- 【线段树求逆序数】【HDU1394】Minimum Inversion Number
- mongoVue破解版
- 基于matlab的直流调速仿真系统代码,基于Matlab的双闭环直流调速系统仿真研究毕业设计论文...
- 奶头乐理论和二八定律和马太效应
- android 打开微信代码,3个超实用的微信隐藏代码,仅限安卓
- SpringBoot 整合 ElasticSearch 实现京东搜索(手把手带你完成一个 “前后端分离项目”)
- 字体/字库: [ 下载 ] > freetype sdl sdl_ttf
- 蓝奏云软件库源码分享下载(后端源码)
- 【TVM 巡礼】How to optimize cpu(x86) gemm串讲
- sql 凭证明细表 科目余额表_金碟财务软件手册——明细账 凭证汇总表 科目余额表...
- Java中hasNext()的作用
- MapBoxMap 之 定位
- docker基本知识和部署在centos系统
- 宇宙代码与磁子计算机,新认识!宇宙产生什么最强磁铁?比人类产生的最强磁场强一亿倍...
- 【C 语言】结构体 ( 结构体作为函数参数 | 结构体指针作为函数参数 )
热门文章
- 记录一个非常DT的经历——金山毒霸导致IDEA异常:java: 找不到符号符号:类 xxx位置:程序包 xxx.xxx程序包xxx不存在
- 8款样式新颖的jQueryCSS3网页菜单
- ListView事件的研究
- 使用计算机可以代替手工,【多选题】会计核算软件的功能主要偏重于用计算机来替代手工记账,一般不包括( )等功能。...
- activiti动态办理人_Activiti动态设置办理人扩展
- C语言-----石头剪刀布小游戏
- 桶排序算法——C++
- JAVA王大师-易经风水布局秘笈
- 重庆高二女生发明考场神器:作弊一秒被逮_cnBeta 人物_cnBeta.COM
- 互联网金融神话 余额宝破1853亿的背后