❶ Python excel 写入的问题
(1)对Excel的写操作:
#-*-coding:utf-8-*-
#导入xlwt模块
importxlwt
#创建一个Workbook对象,这就相当于创建了一个Excel文件
book=xlwt.Workbook(encoding='utf-8',style_compression=0)
'''
Workbook类初始化时有encoding和style_compression参数
encoding:设置字符编码,一般要这样设置:w=Workbook(encoding='utf-8'),就可以在excel中输出中文了。
默认是ascii。当然要记得在文件头部添加:
#!/usr/bin/envpython
#-*-coding:utf-8-*-
style_compression:表示是否压缩,不常用。
'''
#创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
#在电脑桌面右键新建一个Excel文件,其中就包含sheet1,sheet2,sheet3三张表
sheet=book.add_sheet('test',cell_overwrite_ok=True)
#其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False
#向表test中添加数据
sheet.write(0,0,'EnglishName')#其中的'0-行,0-列'指定表中的单元,'EnglishName'是向该单元写入的内容
sheet.write(1,0,'Marcovaldo')
txt1='中文名字'
sheet.write(0,1,txt1.decode('utf-8'))#此处需要将中文字符串解码成unicode码,否则会报错
txt2='马可瓦多'
sheet.write(1,1,txt2.decode('utf-8'))
#最后,将以上操作保存到指定的Excel文件中
book.save(r'e: est1.xls')#在字符串前加r,声明为raw字符串,这样就不会处理其中的转义了。否则,可能会报错
❷ python怎么读写excel文件
最近用python处理一个小项目,其中涉及到对excel的读写操作,通过查资料及实践做了一下总结,以便以后用。
python读写excel文件要用到两个库:xlrd和xlwt,首先下载安装这两个库。
1、#读取Excel
importxlrd
data = xlrd.open_workbook(excelFile)
table = data.sheets()[0]
nrows = table.nrows #行数
ncols = table.ncols #列数
for i in xrange(0,nrows):
rowValues= table.row_values(i) #某一行数据
for item in rowValues:
printitem
2、写Excel文件
'''往EXCEl单元格写内容,每次写一行sheet:页签名称;row:行内容列表;rowIndex:行索引;
isBold:true:粗字段,false:普通字体'''
defWriteSheetRow(sheet,rowValueList,rowIndex,isBold):
i = 0
style = xlwt.easyxf('font: bold 1')
#style = xlwt.easyxf('font: bold 0, color red;')#红色字体
#style2 = xlwt.easyxf('pattern: pattern solid, fore_colour yellow; font: bold on;') # 设置Excel单元格的背景色为黄色,字体为粗体
forsvalue inrowValueList:
strValue = unicode(str(svalue),'utf-8')
ifisBold:
sheet.write(rowIndex,i,strValue,style)
else:
sheet.write(rowIndex,i,strValue)
i = i + 1
'''写excel文件'''
defsave_Excel(strFile):
excelFile = unicode(strFile,"utf8")
wbk = xlwt.Workbook()
sheet = wbk.add_sheet('sheet1',cell_overwrite_ok=True)
headList = ['标题1','标题2','标题3','标题4','总计']
rowIndex = 0
WriteSheetRow(sheet,headList,rowIndex,True)
fori inxrange(1,11):
rowIndex = rowIndex + 1
valueList = []
forj inxrange(1,5):
valueList.append(j*i)
WriteSheetRow(sheet,valueList,rowIndex,False)
wbk.save(excelFile)
style2 = xlwt.easyxf('pattern: pattern solid, fore_colour yellow; font: bold on;')
在设置上Excel单元格的背景色时,fore_colour支持的颜色是有限的,仅支持一下颜色
aqua 0x31
black 0x08
blue 0x0C
blue_gray 0x36
bright_green 0x0B
brown 0x3C
coral 0x1D
cyan_ega 0x0F
dark_blue 0x12
dark_blue_ega 0x12
dark_green 0x3A
dark_green_ega 0x11
dark_purple 0x1C
dark_red 0x10
dark_red_ega 0x10
dark_teal 0x38
dark_yellow 0x13
gold 0x33
gray_ega 0x17
gray25 0x16
gray40 0x37
gray50 0x17
gray80 0x3F
green 0x11
ice_blue 0x1F
indigo 0x3E
ivory 0x1A
lavender 0x2E
light_blue 0x30
light_green 0x2A
light_orange 0x34
light_turquoise 0x29
light_yellow 0x2B
lime 0x32
magenta_ega 0x0E
ocean_blue 0x1E
olive_ega 0x13
olive_green 0x3B
orange 0x35
pale_blue 0x2C
periwinkle 0x18
pink 0x0E
plum 0x3D
purple_ega 0x14
red 0x0A
rose 0x2D
sea_green 0x39
silver_ega 0x16
sky_blue 0x28
tan 0x2F
teal 0x15
teal_ega 0x15
turquoise 0x0F
violet 0x14
white 0x09
yellow 0x0D"""
另外一种方式是 用pyExcelerator
❸ 使用python读取excel中的数据,并重新写入到新的excel中
使用Python3运行
起初是读取excel中的数据,进行相关的计算将结果追加在后面,没有找到合适的办法,就只能采用这种读取数据,进行相关操作,重新写入的方法
(1)使用xlrd打开xls文件,读取数据
(2)将需要的数据放进list中,进行相应的计算得出结果
(3)使用xlutils的将xlrd对象转化为xlwt对象
(4)使用转化的xlwt对象的write方法,将结果写入
(5)使用xlwt的save进行保存
主要用它读取Excel数据
主要用它来将数据写入到excel中
主要用xlutils的方法将xlrd对象转化为xlwt对象,好来进行写入
删除了一些东西大致如下
❹ Excel用Python读取清洗后怎么写入数据
导入xlrd库。
要导入xlrd库,它是读取excel中数据的库,解压所下载的压缩包,用cmd命令行CD到解压目录,执行pythonsetup.pyinstall命令,要导入xlwt库,它是开发人员用于生成与MicrosoftExcel版本95到2003兼容的电子表格文件的库。接着用cmd命令行切换到下载文件所解压的目录,输入pythonsetup.pyinstall命令,如无意外则安装成功。
openpyxl是用于读取和写入Excel2010xlsx/xlsm/xltx/xltm文件的Python库。
❺ python将数组写入excel文件
# 将数据写入新文件
def data_write(file_path, datas):
f = xlwt.Workbook()
sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True) #创建sheet
#将数据写入第 i 行,第 j 列
i = 0
for data in datas:
for j in range(len(data)):
sheet1.write(i,j,data[j])
i = i + 1
f.save(file_path) #保存文件
❻ Python的excel读取和写入
现在常用的处理excel的方法大多是numpy,但是之前已经习惯了用xlrd的工具,所以也记录一下祖传的excel读取/创建/写入:
1.读取excel:
2.创建一个excel:
3.写入excel:
❼ python对excel操作
Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了!
操作xls文件
xlrd(读操作):
import xlrd
1、引入xlrd模块
workbook=xlrd.open_workbook("36.xls")
2、打开[36.xls]文件,获取excel文件的workbook(工作簿)对象
names=workbook.sheet_names()
3、获取所有sheet的名字
worksheet=workbook.sheet_by_index(0)
4、通过sheet索引获得sheet对象
worksheet为excel表第一个sheet表的实例化对象
worksheet=workbook.sheet_by_name("各省市")
5、通过sheet名获得sheet对象
worksheet为excel表sheet名为【各省市】的实例化对象
nrows=worksheet.nrows
6、获取该表的总行数
ncols=worksheet.ncols
7、获取该表的总列数
row_data=worksheet.row_values(n)
8、获取该表第n行的内容
col_data=worksheet.col_values(n)
9、获取该表第n列的内容
cell_value=worksheet.cell_value(i,j)
10、获取该表第i行第j列的单元格内容
xlwt(写操作):
import xlwt
1、引入xlwt模块
book=xlwt.Workbook(encoding="utf-8")
2、创建一个Workbook对象,相当于创建了一个Excel文件
sheet = book.add_sheet('test')
3、创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
sheet.write(i, j, '各省市')
4、向sheet表的第i行第j列,写入'各省市'
book.save('Data\\36.xls')
5、保存为Data目录下【36.xls】文件
操作xlsx文件
openpyxl(读操作):
import openpyxl
1、引入openpyxl模块
workbook=openpyxl.load_workbook("36.xlsx")
2、打开[36.xlsx]文件,获取excel文件的workbook(工作簿)对象
names=workbook.sheetnames
worksheet=workbook.worksheets[0]
worksheet=workbook["各省市"]
ws = workbook.active
6、获取当前活跃的worksheet,默认就是第一个worksheet
nrows=worksheet.max_row
7、获取该表的总行数
ncols=worksheet.max_column
8、获取该表的总列数
content_A1= worksheet['A1'].value
9、获取该表A1单元格的内容
content_A1=worksheet.cell(row=1,column=1).value
10、获取该表第1列第1列的内容
openpyxl(写操作):
workbook=openpyxl.Workbook()worksheet = workbook.active
3、获取当前活跃的worksheet,默认就是第一个worksheet
worksheet.title="test"
4、worksheet的名称设置为"test"
worksheet = workbook.create_sheet()
5、创建一个新的sheet表,默认插在工作簿末尾
worksheet.cell(i,j,'空')
6、第i行第j列的值改成'空'
worksheet["B2"]="空"
7、将B2的值改成'空'
worksheet.insert_cols(1)
8、在第一列之前插入一列
worksheet.append(["新增","台湾省"])
9、添加行
workbook.save("Data\\36.xlsx")
10、保存为Data目录下【36.xlsx】文件
pandas处理excel文件
pandas操作:
import pandas as pd
1、引入pandas模块
data = pd.read_excel('36.xls')
2、读取[36.xls]或者[36.xlsx]文件
data = pd.read_csv('36.csv')
3、读取[36.csv]文件
data=data.dropna(subset=['店铺'])
4、过滤掉data店铺列有缺失的数据
data.sort_values("客户网名", inplace=True)
5、将data数据按照客户网名列进行从小到大排序
data = pd.read_csv(36.csv, skiprows = [0,1,2],sep = None, skipfooter = 4)
6、读取[36.csv]文件,前三行和后四行的数据略过
data = data.fillna('空')
7、将data中的空白处填充成'空'
data.drop_plicates('订单','first',inplace=True)
8、data中的数据,按照【订单】列做去重处理,保留第一条数据
data=pd.DataFrame(data,columns=['订单','仓库'])
9、只保留data中【订单】【仓库】列的数据
data = data[(data[u'展现量'] > 0)]
10、只保留【展现量】列中大于0的数据
data= data[data["订单"].str.contains('000')]
11、只保留【订单】列中包含'000'的数据
data= data[data["仓库"]=='正品仓']
12、只保留【仓库】列是'正品仓'的数据
xs= data[data["店铺"]=='南极人']['销售额']
13、获取店铺是南极人的销售额数据
data['订单'] = data['订单'].str[3:7]
14、【订单】列的值只保留4-8个字节的值
data["邮资"] = np.where((data['店铺'].str.contains('T|t')) & -(data['仓库'] == '代发仓'), 8, data['邮资'])
15、满足店铺列包含 T 或 t 并且仓库不等于'代发仓'的话,将邮资的值改成8,否则值不变
data = np.array(data).tolist()
16、将data从DataFrame转换成列表
data=pd.DataFrame(data)
17、将列表转换成DataFrame格式
zhan = data[u'展现'].sum().round(2)
18、将data中所有展现列数据求和,并取两位小数
sum=data.groupby(['店铺'])['刷单'].sum()
19、将data中按照店铺对刷单进行求和
counts=data['店铺'].value_counts()
20、将data按照店铺进行计算
avg=data.groupby(['店铺'])['刷单'].mean()
21、将data按照店铺对刷单进行求平均数
count = pd.concat([counts,sum], axis=1, ignore_index=True, sort=True)
22、将counts和sum两个DataFrame进行了组合
count=count.rename(index=str, columns={0: "订单", 1: "成本"})
23、将新生成的DataFrame列名进行修改
data = pd.merge(sum, counts, how='left', left_on='店铺', right_on='店铺')
24、将列表转换成DataFrame格式
from openpyxl import Workbook
wb=Workbook()
ws1=wb.active
data.to_excel('36.xlsx')
wb.close()
25、data完整的写入到关闭过程,执行此操作的时候【36.xlsx】不能是打开状态
excel格式操作
样式处理:
1、打开【36.xlsx】
sheet=workbook.worksheets[0]
2、将第一个sheet对象赋值给sheet
sheet.column_dimensions['A'].width = 20.0
3、将A列的宽度设置为20
sheet.row_dismensions[1].height = 20.0
4、将第一行的行高设置为20
sheet.merge_cells('A1:A2')
5、将sheet表A1和A2单元格合并
sheet.unmerge_cells('A1:A2')
6、将sheet表A1和A2单元格取消合并
sheet.insert_rows(2,2)
7、将sheet表从第2行插入2行
sheet.insert_cols(3,2)
8、将sheet表从第3列插入2列
sheet.delete_rows(2)
9、删除第2行
sheet.delete_cols(3, 2)
10、将sheet表从第3列开始删除2列
from openpyxl.styles import Font, Border, PatternFill, colors, Alignment
11、分别引入字体、边框、图案填充、颜色、对齐方式
sheet.cell(i,j).font = Font(name='Times New Roman', size=14, bold=True, color=colors.WHITE)
12、设置sheet表第 i 行第 j 列的字体
sheet.cell(i,j).alignment = Alignment(horizontal='center', vertical='center')
13、设置sheet表第 i 行第 j 列的字体对齐方式
left, right, top, bottom = [Side(style='thin', color='000000')] * 4sheet.cell(i,j).border = Border(left=left, right=right, top=top, bottom=bottom)
14、引入边框样式并调用
fill = PatternFill("solid", fgColor="1874CD")sheet.cell(1,j).fill = fill
15、引入填充样式,并调用
import xlrd
from openpyxl import Workbook
from openpyxl import load_workbook
workbook=load_workbook(filename='C:/Users/EDZ/Desktop/工作/2021.08.03/大兄弟.xlsx')
sheet=workbook.active
sheet.insert_cols(idx=1)
sheet.merge_cells(A1:A3)
sheet['A1']=['上海','山东','浙江']
❽ 用python操作excel数据之避坑秘技
用python操作excel表里的数据非常方便,可以把不同报表,不同类型的数据各种乾坤大挪移,汇集到一起进行展示。但初学者可能会遇到一些大坑,百思不得其解,而不得不放弃这个神器。现把我在自学过程中遇到的一些坑与大家分享,给初学者参考,欢迎批评指正!
坑一:用pandas的to_excel写入EXCEL时,会把原数据清空。
解决方案:先用openpyxl的load_workbook打开工作薄,再用pandas的ExcelWriter新建写入器,把之前打开的工作薄赋值给写入器的工作薄。
坑二:把带有公式的sheet1数据导入再写入sheet2时,会发现带公式的数据全部为空。
解决方案:可用win32com.client中的Dispatch把EXCEL表打开再保存。
坑三:当把复制文件,新建文件,打开保存文件,数据写入都写在一个程序时,往往由于EXCEL打开保存时间较长而与后续程序冲突报错。
解决方案:每个环节建模块顺序执行,各环节间用time.sleep隔开。
❾ python怎么把数据输出到excel
python导出数据到excel文件的方法:
1、调用Workbook()对象中的add_sheet()方法
1
2
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')
2、通过add_sheet()方法中的write()函数将数据写入到excel中,然后使用save()函数保存excel文件
1
2
3
4
5
6
7
ws.write(0, 0, 1234.56, style0)
ws.write(1, 0, datetime.now(), style1)
ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))
wb.save('example.xls')
完整代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import xlwtfrom datetime import datetime
style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',num_format_str='#,##0.00')
style1 = xlwt.easyxf(num_format_str='D-MMM-YY')
wb = xlwt.Workbook()
ws = wb.add_sheet('A Test Sheet')
ws.write(0, 0, 1234.56, style0)
ws.write(1, 0, datetime.now(), style1)
ws.write(2, 0, 1)
ws.write(2, 1, 1)
ws.write(2, 2, xlwt.Formula("A3+B3"))
wb.save('example.xls')
程序执行结果如下:
更多Python知识,请关注:Python自学网!!
(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)