-
1 # 女王我是小行家
-
2 # 小小猿愛嘻嘻
python讀寫excel的方式有很多,這裡我介紹3種方式,一種是利用xlrd和xlwt進行excel讀寫,一種是openpyxl讀寫,最後一種是利用pandas進行讀寫,下面我主要介紹一下3種方式讀寫的過程,實驗環境win7+python3.6+pycharm5.0,主要步驟如下:
為了方便演示,我這裡新建了一個test.xls檔案,主要內容如下,用於測試讀excel的程式碼:
方法一:利用xlrd和xlwt進行excel讀寫,這裡只能是xls型別excel
首先,安裝的話,直接輸入命令"pip install xlrd"和"pip install xlwt"就行,如下:
xlrd讀excel
主要程式碼如下,主要包括讀取行列和單元格的值,以及表格總行數和列數等,比較簡單:
程式執行截圖:
xlwt寫excel
主要程式碼如下,很簡單:
程式執行後,save.xls檔案內容截圖如下:
方法二:利用openpyxl讀寫excel,注意這裡只能是xlsx型別的excel
安裝的話,直接輸入命令"pip install openpyxl"就行,很快就能安裝完畢。
讀excel
主要程式碼如下:
程式執行截圖如下:
寫excel
主要程式碼如下:
程式執行後,new.xlsx儲存的內容如下:
方法三:利用pandas讀取excel,這裡就很簡單了,pandas是一個數據處理的包,本身提供了許多讀取檔案的函式,像read_csv(讀取csv檔案),read_excel(讀取excel檔案)等,只需一行程式碼就能實現檔案的讀取
讀excel
主要程式碼如下,就1行程式碼搞定,注意這裡的data是DataFrame型別:
程式執行截圖如下:
寫excel
主要程式碼如下:
程式執行後,new.xls檔案儲存內容如下:
至此,我們就完成了excel的讀寫。總的來說,這3種方法都很簡單,尤其是第3種方法,1行程式碼就搞定,在資料處理中,經常會用到pandas這個包,功能很強大,當然還有許多其他的包也可以完成excel的讀寫,我這裡就不一一詳細列舉了,感興趣的話可以到網上搜一搜相關資料和教程,瞭解瞭解,幫助很大,希望以上分享的內容能對你有所幫助吧。
-
3 # LIFE與Python
一、用xlrd和xlwt讀寫excel
首先要安裝xlrd,xlwt兩個庫。
1、開啟excel
readbook = xlrd.open_workbook(r"\sample.xlsx")
2、獲取讀入的檔案的sheet
#索引的方式,從0開始
sheet = readbook.sheet_by_index(1)
# 名字的方式
sheet = readbook.sheet_by_name("sheet2")
3、獲取某個單元格的值
#獲取i行3列的表格值
lng = table.cell(i,3).value
#獲取i行4列的表格值
lat = table.cell(i,4).value
4、開啟將寫的表並新增sheet
#開啟一個excel
writebook = xlwt.Workbook()
#在開啟的excel中新增一個sheet
sheet = writebook.add_sheet("test")
5、將資料寫入excel
#寫入excel,i行0列
sheet.write(i,0,result[0])
sheet.write(i,1,result[1])
6、儲存
#一定要記得儲存
writebook.save("answer.xls")
二、使用openpyxl庫讀寫excel
1、開啟Excel
wb = load_workbook("sample.xlsx")
2、建立一個工作表
wb = Workbook()
3、建立一個sheet
sheet = wb.active
4、給sheet起個名字
sheet.title = "New Shit"
5、讀取到指定的Sheet
sheet = wb.get_sheet_by_name("Sheet3")
6、往sheet裡寫入
sheet["C3"] = "Hello world!"
for i in range(10):
sheet["A%d" % (i+1)].value = i + 1
7、儲存
wb.save("sample.xlsx")
-
4 # 黑馬程式設計師
來,一步一步圖文給你分析。
Python對資料寫入Execl檔案並生成圖表
需求:
為了做測試或者對爬蟲程式爬取資料進行分析彙總,我們時常會將資料生成報表,但是如果我們想將報表生成在Excel中,這時候就可以藉助xlsxwriter第三方包來生成圖表。
分析:
為生成excel準備多維陣列型別的資料->資料插入到Excel中->對資料按系列劃分生成圖表
第一步:準備資料:
使用爬蟲爬取網路上關於熱門崗位的資料並生成多維陣列型別,如下:
data = [ ["IOS崗位數", "Android崗位數", "Python崗位數", "物聯網崗位數", "Go與區塊鏈崗位數"], [2000, 4000, 60000, 8000, 1000],]
第二步:將資料插入Excel中
首先要建立一個Excel檔案,然後在Excel中建立一個sheet表單頁,最後將資料插入到sheet表單頁中
1、建立一個Excel物件
workbook = xlsxwriter.Workbook(“Excel名字.xlsx”)
2、基於Excel物件建立一個sheet表單物件
worksheet = workbook.add_worksheet(name=“sheet表單的名字,不填寫就預設為sheet1")
3、將資料寫入sheet表單頁worksheet
worksheet.write_row( row, col, data, cell_format=None)
worksheet.write_column(row, col, data, cell_format=None)
3.1、可以用A1表示第一行第一列的那個單元格,這個時候後面的data可以是個陣列,直接插入一行資料
worksheet.write_column("A1", 一列資料, 樣式(非必填項))
worksheet.write_row("A1", 一行資料, 樣式(非必填項))
具體程式碼如下:
# Write some data to add to plot on the chart.data = [ ["IOS崗位數", "Android崗位數", "Python崗位數", "物聯網崗位數", "Go與區塊鏈崗位數"], [2000, 4000, 60000, 8000, 1000],]worksheet.write_column("A1", data[0])worksheet.write_column("B1", data[1])
第三步:生成圖表
1.透過Workbook add_chart()方法建立圖表物件,其中指定了圖表型別:
chart = workbook.add_chart({"type": "column"})
透過type定義圖示的型別,比如是柱形圖還是餅圖
支援的圖表型別是:
area:建立區域(實線)樣式圖表。
bar:建立條形樣式(轉置直方圖)圖表。
column:建立列樣式(直方圖)圖表。
line:建立線型圖表。
pie:建立餅圖樣式圖表。
doughnut:建立圓環樣式圖表。
scatter:建立散點圖樣式圖表。
stock:建立庫存樣式圖表。
radar:建立雷達樣式圖表。
程式碼如下:
# Create a new Chart object.chart = workbook.add_chart({"type": "column"})
2、新增圖示要統計的資料,同一個報表可以新增多個系列
程式碼如下:
chart.add_series({ "categories": "=Sheet1!$A$1:$A$5", "values": "=Sheet1!$B$1:$B$5", "line": {"color": "red"}, "name": "各崗位數彙總",})
categories:這將設定圖表類別標籤。該類別與X軸大致相同。在大多數圖表型別中,該categories 屬性是可選的,圖表將僅假設一個順序系列 1..n。
values:這是系列中最重要的屬性,是每個圖表物件的唯一必需選項。此選項將圖表與其顯示的工作表資料相連結。可以使用上面第一個示例中所示的公式或使用第二個示例中所示的值列表來設定資料範圍。
line:設定系列線型的屬性,如顏色和寬度。請參見圖表格式:行。
name:設定系列的名稱。名稱顯示在公式欄中。對於非餅圖/圓環圖,它也會顯示在圖例中。name屬性是可選的,如果未提供,則預設為。名稱也可以是公式,例如,包含工作表名稱,行和列的列表。Series 1..n=Sheet1!$A$1["Sheet1", 0, 0]
如下圖所示:
3、給圖表定義名字和樣式
程式碼如下:
chart.set_title({"name": "各崗位數彙總_圖表"})chart.set_style(10)
4、將圖表插入到Excel中
程式碼如下:
# Insert the chart into the worksheet.worksheet.insert_chart("A7", chart)
<img src="//s3.pstatp.com/wenda/wenda_web/static/style/image/loading_a788ad0.gif" _src="data:image/svg+xml;utf8,<svg xmlns=" http:="" www.w3.org="" 2000="" svg"="" width="1514" height="950">5、關閉儲存修改
程式碼如下:
workbook.close()
回覆列表
需要匯入xlwt和xlrd兩個模組
import xlwt
import xlrd
#讀Excel檔案
workbook=xlrd.open_workbook(r"D:\test.xlsx")#開啟Excel檔案sheet=workbook.sheet_by_index(0) # sheet索引從0開始sheet_col=sheet.col_values(0)#得到第一列的內容
#寫Excel檔案
workbook=xlwt.Workbook()
sheet1 = workbook.add_sheet("xlwt", cell_overwrite_ok=True)
style = xlwt.XFStyle()#初始化樣式
# 建立字型樣式
font = xlwt.Font()font.name = "Times New Roman"
font.bold = True # 加粗
#設定字型
style.font = font
for i in range(0, len(belong_place)):
sheet1.write(i + 1, 0, sheet_col[i], style) # 號碼
sheet1.write(i + 1, 1, belong_place[i], style) # 歸屬地
# 儲存excel檔案,有同名的直接覆蓋
workbook.save(r"D:\test1.xls")