① 绠杩皃ython绋嫔簭镄勮繍琛岃繃绋
python绋嫔簭镄勮繍琛岃繃绋嫔彲浠ュ垎涓轰互涓嫔嚑涓姝ラわ细
1. 婧愪唬镰佺殑缂栧啓锛氶栧厛锛岀▼搴忓憳浼氢娇鐢ㄦ枃链缂栬緫鍣锛埚係ublime Text銆丯otepad++銆乂isual Studio Code绛夛级缂栧啓Python浠g爜锛岃繖浜涗唬镰佽淇濆瓨涓.py鏂囦欢銆
2. 婧愪唬镰佺殑缂栬疟锛歅ython瑙i喷鍣ㄤ细灏嗘簮浠g爜杞鎹涓哄瓧鑺傜爜锛坆ytecode锛夛纴杩欐槸涓绉崭绠绾ц瑷锛屽彲浠ヨ玃ython瑙i喷鍣ㄦ墽琛屻傝繖涓杩囩▼绉颁负缂栬疟銆
3. 瀛楄妭镰佺殑镓ц锛歅ython瑙i喷鍣ㄤ细镓ц屽瓧鑺傜爜锛岃繖鏄鍦ㄥ唴瀛树腑杩涜岀殑銆侾ython瑙i喷鍣ㄤ细镙规嵁瀛楄妭镰佺殑鎸囦护𨱒ユ墽琛岀▼搴忋
4. 瀵硅薄妯″瀷镄勮繍琛锛歅ython链変竴涓瀵硅薄妯″瀷锛屽畠鍏佽窹ython浠g爜鍜孭ython鏁版嵁绫诲瀷锛埚傚垪琛ㄣ佸瓧鍏搞佸瓧绗︿覆绛夛级杩涜屼氦浜掋傝繖涓妯″瀷鍦ㄨ繍琛屾椂锷ㄦ佸湴鍒涘缓鍜屼慨鏀瑰硅薄銆
5. 寮傚父澶勭悊锛歅ython绋嫔簭涓鍙鑳戒细鍙戠敓寮傚父锛岃В閲婂櫒浼氭崟銮峰苟澶勭悊杩欎簺寮傚父锛屼互淇濊瘉绋嫔簭镄勭ǔ瀹氭с
6. 绋嫔簭缁撴潫锛氩綋镓链夐渶瑕佹墽琛岀殑镎崭綔閮藉畬鎴愬悗锛孭ython绋嫔簭灏变细缁撴潫銆
褰撹繍琛孭ython绋嫔簭镞讹纴鎴戜滑浼氶亣鍒板嚑绉崭笉钖岀骇鍒镄勮繍琛岀幆澧冿细
浜や簰寮忕幆澧冿细褰扑綘镓揿紑涓涓狿ython浜や簰寮忕幆澧冿纸濡侷Python鎴朠ython shell锛夋椂锛屽彲浠ョ洿鎺ヨ緭鍏ュ拰镓ц孭ython浠g爜銆傝繖涓嶉渶瑕佸皢浠g爜淇濆瓨涓.py鏂囦欢锛屽洜涓轰綘鍙浠ョ洿鎺ュ湪锻戒护琛屼腑杈揿叆骞舵墽琛屻
鑴氭湰鐜澧冿细褰扑綘灏哖ython浠g爜淇濆瓨涓.py鏂囦欢镞讹纴浣犲彲浠ュ湪锻戒护琛屼腑鐩存帴杩愯岃繖涓鏂囦欢銆傝繖浼氲皟鐢≒ython瑙i喷鍣ㄦ潵镓ц岃ユ枃浠朵腑镄勪唬镰併
IDE鎴栫紪杈戝櫒鐜澧冿细璁稿氶泦鎴愬紑鍙戠幆澧冿纸IDE锛夊拰鏂囨湰缂栬緫鍣锛埚侾yCharm銆乂isual Studio Code绛夛级鎻愪緵浜呜繍琛孭ython浠g爜镄勫姛鑳姐傝繖浜涘伐鍏烽氩父浼氩皢浣犵殑浠g爜淇濆瓨涓.py鏂囦欢锛屽苟鍦ㄩ渶瑕佹椂镊锷ㄨ皟鐢≒ython瑙i喷鍣ㄦ潵镓ц屼唬镰併
浠ヤ笂灏辨槸Python绋嫔簭镄勮繍琛岃繃绋嬨傝繖涓杩囩▼娑夊强鍒颁简璁稿氩簳灞傛傚康锛屽傜紪璇戙佸瓧鑺傜爜銆佸硅薄妯″瀷绛夛纴杩欎簺鏄鐞呜ВPython璇瑷镄勯吨瑕侀儴鍒嗐傚笇链涜繖涓锲炵瓟鑳藉熷府锷╀綘镟村ソ鍦扮悊瑙Python绋嫔簭镄勮繍琛岃繃绋嬨
② 用python怎么实现多个excel自动两列位置对调
import pandas as pd
import os
# 指定一个 Excel 文件夹目录
path = 'E:/下载/文件夹的名称/'
# 遍历文件夹获取所有符合条件的 Excel 文件完整目录
for root, dirs, files in os.walk(path):
# 遍历文件
for file in files:
# 如果有不需要操作的文件另外添加判断条件即可
# 拼接完整目录
filePath = path + file
# 读取数据
df = pd.read_excel(filePath)
# 所有列名
columnName = df.columns.values
# B C 互换位置
columnName[1], columnName[2] = columnName[2], columnName[1]
# 重组 DataFrame
new = df.loc[:, columnName]
# 到这一步已经实现了你的需求,如果另存为
dataFrame = pd.DataFrame(new)
# 覆盖保存,要另存为 filePath 改成 path + file.split('.')[0] + '1.' + file.split('.')[1]
dataFrame.to_excel(filePath, index=False)
③ Python操作Excel实现自动化报表
Python操作Excel实现自动化报表
安装
python -m pip install xlrd xlwt xlutils。
基本用法
1.从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx
import xlwt
import xlrd
from xlutils. import
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容
# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列。
2.单元格操作
# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):
data = xlrd.open_workbook(file_path)
table = data.sheet_by_name(table)
return table.cell(y,x).value
# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):
write_obj_list.append({'cols':cols,'rows':rows,'value':value,
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})
# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):
write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})
# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):
old_excel = xlrd.open_workbook(file_path, formatting_info=True)
#管道作用
new_excel = (old_excel)
'''
通过get_sheet()获取的sheet有write()方法
'''
sheet1 = new_excel.get_sheet(0)
'''
1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表
'''
for item in write_obj_list:
if 'id' not in item.keys():
if 'style' in item.keys():
sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
else:
sheet1.write(item['rows'], item['cols'], item['value'])
else:
if 'style' in item.keys():
sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
else:
sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
'''
如果报错 dict_items has no attributes sort
把syle源码中--alist.sort() 修改为----> sorted(alist)
一共修改2次
'''
new_excel.save(file_path)
#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数
# value:合并单元格后的填充值
# style:合并后填充风格:
# font: name 宋体
# height 280;
# alignment: horiz centre
# ... 与excel操作基本保持一致
(注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中)
最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path,就可以在当前工作目录下生成想要的Excel结果文件。
注意:
1.write_obj_list支持用户自定义
2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成
End