❶ 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電腦。)