python高手之路python處理excel檔案
用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模組。
- 方法一
小羅問我怎麼從excel中讀取資料,然後我百了一番,做下記錄excel資料圖(小羅說資料要給客戶保密,我隨手寫了幾行資料):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 讀取excel資料
# 小羅的需求,取第二行以下的資料,然後取每行前13列的資料
import xlrd
data = xlrd.open_workbook('test.xls' ) # 開啟xls檔案
table = data.sheets()[0] # 開啟第一張表
nrows = table.nrows # 獲取表的行數
for i in range(nrows): # 迴圈逐行列印
if i == 0: # 跳過第一行
continue
print table.row_values(i)[:13] # 取前十三列
excel的寫操作等後面用到的時候在做記錄
- 方法二
使用xlrd讀取檔案,使用xlwt生成Excel檔案(可以控制Excel中單元格的格式)。但是用xlrd讀取excel是不能對其進行操作的;而xlwt生成excel檔案是不能在已有的excel檔案基礎上進行修改的,如需要修改檔案就要使用xluntils模組。pyExcelerator模組與xlwt類似,也可以用來生成excel檔案。
1.[程式碼]test_xlrd.py
#coding=utf-8
#######################################################
#filename:test_xlrd.py
#author:defias
#date:xxxx-xx-xx
#function:讀excel檔案中的資料
#######################################################
import xlrd
#開啟一個workbook
workbook = xlrd.open_workbook('E:\\Code\\Python\\testdata.xls' )
#抓取所有sheet頁的名稱
worksheets = workbook.sheet_names()
print('worksheets is %s' %worksheets)
#定位到sheet1
worksheet1 = workbook.sheet_by_name(u'Sheet1')
"""
#通過索引順序獲取
worksheet1 = workbook.sheets()[0]
#或
worksheet1 = workbook.sheet_by_index(0)
"""
"""
#遍歷所有sheet物件
for worksheet_name in worksheets:
worksheet = workbook.sheet_by_name(worksheet_name)
"""
#遍歷sheet1中所有行row
num_rows = worksheet1.nrows
for curr_row in range(num_rows):
row = worksheet1.row_values(curr_row)
print('row%s is %s' %(curr_row,row))
#遍歷sheet1中所有列col
num_cols = worksheet1.ncols
for curr_col in range(num_cols):
col = worksheet1.col_values(curr_col)
print('col%s is %s' %(curr_col,col))
#遍歷sheet1中所有單元格cell
for rown in range(num_rows):
for coln in range(num_cols):
cell = worksheet1.cell_value(rown,coln)
print cell
"""
#其他寫法:
cell = worksheet1.cell(rown,coln).value
print cell
#或
cell = worksheet1.row(rown)[coln].value
print cell
#或
cell = worksheet1.col(coln)[rown].value
print cell
#獲取單元格中值的型別,型別 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
cell_type = worksheet1.cell_type(rown,coln)
print cell_type
"""
2. [程式碼]test_xlwt.py
#coding=utf-8
#######################################################
#filename:test_xlwt.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel檔案並寫入資料
#######################################################
import xlwt
#建立workbook和sheet物件
workbook = xlwt.Workbook() #注意Workbook的開頭W要大寫
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)
#向sheet頁中寫入資料
sheet1.write(0,0,'this should overwrite1')
sheet1.write(0,1,'aaaaaaaaaaaa')
sheet2.write(0,0,'this should overwrite2')
sheet2.write(1,2,'bbbbbbbbbbbbb')
"""
#-----------使用樣式-----------------------------------
#初始化樣式
style = xlwt.XFStyle()
#為樣式建立字型
font = xlwt.Font()
font.name = 'Times New Roman'
font.bold = True
#設定樣式的字型
style.font = font
#使用樣式
sheet.write(0,1,'some bold Times text',style)
"""
#儲存該excel檔案,有同名檔案時直接覆蓋
workbook.save('E:\\Code\\Python\\test2.xls')
print '建立excel檔案完成!'
3. [程式碼]test_xlutils.py
#coding=utf-8
#######################################################
#filename:test_xlutils.py
#author:defias
#date:xxxx-xx-xx
#function:向excel檔案中寫入資料
#######################################################
import xlrd
import xlutils.copy
#開啟一個workbook
rb = xlrd.open_workbook('E:\\Code\\Python\\test1.xls')
wb = xlutils.copy.copy(rb)
#獲取sheet物件,通過sheet_by_index()獲取的sheet物件沒有write()方法
ws = wb.get_sheet(0)
#寫入資料
ws.write(1, 1, 'changed!')
#新增sheet頁
wb.add_sheet('sheetnnn2',cell_overwrite_ok=True)
#利用儲存時同名覆蓋達到修改excel檔案的目的,注意未被修改的內容保持不變
wb.save('E:\\Code\\Python\\test1.xls')
4. [程式碼]test_pyExcelerator_read.py
#coding=utf-8
#######################################################
#filename:test_pyExcelerator_read.py
#author:defias
#date:xxxx-xx-xx
#function:讀excel檔案中的資料
#######################################################
import pyExcelerator
#parse_xls返回一個列表,每項都是一個sheet頁的資料。
#每項是一個二元組(表名,單元格資料)。其中單元格資料為一個字典,鍵值就是單元格的索引(i,j)。如果某個單元格無資料,那麼就不存在這個值
sheets = pyExcelerator.parse_xls('E:\\Code\\Python\\testdata.xls')
print sheets
5. [程式碼]test_pyExcelerator.py
#coding=utf-8
#######################################################
#filename:test_pyExcelerator.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel檔案並寫入資料
#######################################################
import pyExcelerator
#建立workbook和sheet物件
wb = pyExcelerator.Workbook()
ws = wb.add_sheet(u'第一頁')
#設定樣式
myfont = pyExcelerator.Font()
myfont.name = u'Times New Roman'
myfont.bold = True
mystyle = pyExcelerator.XFStyle()
mystyle.font = myfont
#寫入資料,使用樣式
ws.write(0,0,u'ni hao 帕索!',mystyle)
#儲存該excel檔案,有同名檔案時直接覆蓋
wb.save('E:\\Code\\Python\\mini.xls')
print '建立excel檔案完成!'
相關推薦
python高手之路python處理excel檔案
用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模組。 方法一
python高手之路python處理excel檔案(方法彙總)
用python來自動生成excel資料檔案。python處理excel檔案主要是第三方模組庫xlrd、xlwt、xluntils和pyExcelerator,除此之外,python處理excel還可以用win32com和openpyxl模組。 方法一: 小羅問我怎麼從
《Python高手之路》PDF版
png ext mar mark proc https 圖片 pdf 之路 鏈接:https://pan.baidu.com/s/1B3xU431guBa_CZ7PPMwpfQ《Python高手之路》PDF版
《Python學習之路 -- Python基礎之叠代器及for循環工作原理》
pre 循環 next 是我 我們 png 捕獲 模擬 檢查 提到叠代器不得不說叠代器協議,叠代器協議是指:對象必須提供一個__next__()方法,執行該方法要麽返回叠代中的下一項,要麽就拋出一個StopIteration異常(相當於報錯的意思)以終止叠代。然而遵循這
《Python學習之路 -- Python基礎之裝飾器》
接收 學習之路 代碼 內部 AS OS 如果 col PE 裝飾器,本質上是一個函數,更加直觀的說,裝飾器就是等於 高階函數 + 函數嵌套 + 閉包 ,裝飾器是具有某個基礎功能的函數,這種功能可以加成到其他函數上,使得其他函數的功能更加強大。除此以外,裝飾器還有兩個重要
《Python學習之路 -- Python基礎之切片》
nas col 結束 了解 默認值 對象 學習 好的 tuple 切片從字面上的意思也能很好的了解,就是將某個東西切成一個片段。也就是說,切片是一種對數據的操作,截取數據中的一個片段,字符串,列表和元組都支持切片。 # 語法: 操作對象[起始位置:結束位置:步長] #
Python學習之路——Python基礎之運算符
學習之路 type text 技術 計算 python基礎 tex fff oss 算術運算 先and 後 or 先計算括號內 執行順序: 從前到後 結果 True OR ==> True True And ==> 繼續走 False Or
Python學習之路——Python基礎之基本資料型別(列表、元組和字典)
基本資料型別 數字 字串 列表 list 元組 tuple 字典 dict 布林值 bool 列表和元組 列表:有序,元素可以被修改元組: 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫元租的時候,推薦在最後加入',' 索引:v =
Python學習之路——Python基礎之基本數據類型
開始 bit mark end sprint upper sdi com 字符串轉換 基本數據類型 數字 字符串 列表 list 元組 tuple 字典 dict 布爾值 bool ×××的魔法 數字 將字符串轉換為數字:int a = "123" print(ty
Python學習之路——Python基礎之基本數據類型(列表、元組和字典)
bre mark 有序 數據 str sca 索引 更新 蘋果 基本數據類型 數字 字符串 列表 list 元組 tuple 字典 dict 布爾值 bool 列表和元組 列表:有序,元素可以被修改元組: 書寫格式:元組的一級元素不可被修改,不能被增加或者刪除,一般寫
Python學習之路——Python基礎之基本資料型別
基本資料型別 數字 字串 列表 list 元祖 tuple 字典 dict 布林值 bool ×××的魔法 數字 將字串轉換為數字:int a = "123" print(type(a),a) b = int(a) print(type(b),b) n
python學習之路--python基礎之列表操作
本文主要介紹下python列表的的一些基本操作 列表是我們在python程式設計中常用的資料型別之一,通過列表我們可以對資料實現最方便的儲存、修改等操作。 定義列表 1 names=['ZhangSan','LiSi','WangWu'] 列表的訪問:通過下表來訪問列表中的元素,下標從0開始計數,還可以反
Python自學之路-Python基礎教程-24:使用tkinter的Canvas畫布元件繪圖
要在tkinter的視窗上繪圖也是可以做到的,這需要使用Canvas畫布元件。 新增一個Canvas物件也很簡單,指定寬度和高度,就可以在這個物件上畫圖。 tkWindow = tk.Tk() draw = tk.Canvas(tkWindow, width=100
Python學習之路---Python 字串
Python訪問字串中的值 Python不支援單字元型別,單字元也在Python也是作為一個字串使用。 Python訪問子字串,可以使用方括號來擷取字串,如下例項: i = "Hello World" print "i[0]:",i[0] 以上例項執
Python學習之路---Python函式
Python函式 函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的程式碼段。函式能提高應用的模組性,和程式碼的重複利用率。 定義一個函式 你可以定義一個由自己想要功能的函式,以下是簡單的規則: 函式程式碼塊以 def 關鍵詞開頭,後接
Python自學之路-Python基礎教程-22:使用tkinter的PhotoImage開發網路圖片檢視器
前面介紹了訪問網路和下載圖片的程式,並且也有了可以展示介面的程式,這樣就可以開發一個有介面的網路圖片檢視器。在這個圖片檢視器點選按鈕,可以顯示網路上的圖片。 import tkinter as tk import urllib.request impor
我的Python成長之路---Day7-字元編碼和檔案處理part1
儲備知識點: 1. 計算機系統分為三層: 應用程式 作業系統 計算機硬體 2. 執行python程式的三個步驟 1. 先啟動python直譯器 2. 再將python檔案當作
我的Python成長之路---Day9-檔案處理的補充和Python中的函式基礎使用
=============================================檔案處理補充============================================ 一、檔案內指標的移動 大前提:檔案內指標的移動是Bytes為單位的,唯獨t模式下
ApolloStudio高手之路(8):用Python呼叫.Net(C#、VB.Net等)開發的動態連結庫(DLL庫檔案)實現相互協作
ApolloStudio是基於.Net與Python雙架構下的實現,這樣的架構體系使得其具有傳統定製軟體無法比擬的超強拓展性,在本文中我們將介紹這兩者是如何在ApolloStudio平臺上實現優勢互補的。由於在ApolloStudio中使用的更易學習的Python作為主導指令碼語言,這裡我們將介
小白python爬蟲之路——對字符串的處理
dword put AC class div www IT num hang 對字符串的處理分類:分段,連接,剔除,提取,綜合 連接:+,* +(加法)的使用 a=‘i‘ b=‘ love‘ c=‘ you‘ print(a+b+c) #return i love you