① 綆榪皃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