1 Excel編程
1.1 讀Excel
1)Pandas
讀取
df=pd.read_excel('lemon.xlsx')#這個會直接默認讀取到這個Excel的第一個表單df=pd.read_excel('lemon.xlsx',sheet_name='sheet1')#可以通過sheet_name來指定讀取的表單df=pd.read_excel('lemon.xlsx',sheet_name=['sheet0','sheet1']) df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])
操作
data=df.ix[0].values #0表示第一行 這裏讀取數據並不包含表頭 data=df.ix[[1,2]].values #讀取指定多行的話 data=df.ix[1,2] #讀取第一行第二列的值 data=df.ix[[1,2],['title','data']].values #讀取第一行第二行的title以及data列的值 data=df.ix[:,['title','data']].values #讀所有行的title以及data列的值 df.columns.values #獲取列名 df['data'].values #獲取指定列的值
2)xlrd
安裝Xlrd模塊
打開excel文檔
- workbook = xlrd.open_ workbook('ttt.xIs')
獲取所有sheet
- sheet_ name = workbook.sheet_names()[0] (返回類型爲sheet名字組成list )
獲取指定sheet
- 根據sheet的sheet_ by_ index屬性索引獲取
- 根據sheet的sheet_ by_ name屬性名字獲取
獲取指定sheet的名字,行數,列數
- 調用指定sheet的name, nrows, ncols屬性
獲取sheet的內容
- 將sheet按照二維數組,根據行列的方式訪問指定內容
- 第0行第1列數據sheet.row(0)[1].value
- 第1列第0行數據sheet.col(1)[0].value
- 第0行第1列數據sheet.cell(0,1).value
- rows = sheet.row_values(1) # 獲取第2行內容
- cols = sheet.col_values(2) # 獲取第3列內容
1.2 寫Excel
1)openpyxl
官方文檔:https://openpyxl.readthedocs.io/en/stable/#usage-examples
import openpyxl
wb = openpyxl.Workbook() # 創建一個Workbook對象
mySheet = wb.create_sheet(index=0, title="Mysheet") # 創建一個Sheet對象
activeSheet = wb.get_active_sheet() # 獲取活動的sheet
activeSheet.sheet_properties.tabColor = "205EB2" # 設置活動表顏色
mySheet .title = "test" # 設置mySheet的標題
directionCell = activeSheet.cell(row=4, column=2) # 選擇Cell對象(B4單元格並賦值)
directionCell.value = "找到這個單元格"
mySheet ['A1'].value = "activesheet最大行:" + str(activeSheet.max_row)
mySheet ['A2'].value = "activesheet最大列:" + str(activeSheet.max_column)
wb.save("test.xlsx") # 最後保存workbook
2)xlsxwriter
官方文檔:https://xlsxwriter.readthedocs.io/contents.html
import xlsxwriter
f = xlsxwriter.Workbook() # 創建excel文件
worksheet1 = f.add_worksheet('操作日誌') # 括號內爲工作表表名
bold = f.add_format({
'bold': True, # 字體加粗
'border': 1, # 單元格邊框寬度
'align': 'left', # 水平對齊方式
'valign': 'vcenter', # 垂直對齊方式
'fg_color': '#F4B084', # 單元格背景顏色
'text_wrap': True, # 是否自動換行
})
//row:行, col:列, data:要寫入的數據, bold:單元格的樣式
worksheet1.write(row, col, data, bold)
// A1:從A1單元格開始插入數據,按行插入, data:要寫入的數據(格式爲一個列表), bold:單元格的樣式
worksheet1.write_row(“A1”,data,bold)
// A1:從A1單元格開始插入數據,按列插入, data:要寫入的數據(格式爲一個列表), bold:單元格的樣式
worksheet1.write_column(“A1”,data,bold)
// 第一個參數是插入的起始單元格,第二個參數是圖片你文件的絕對路徑
worksheet1.insert_image('A1','f:\\1.jpg')
worksheet1.write_url(row, col, "internal:%s!A1" % ("要關聯的工作表表名"), string="超鏈接顯示的名字")
workbook.add_chartsheet(type="")
參數中的type指的是圖表類型,圖表類型示例如下:
[area:面積圖,bar:條形圖,column:直方圖,doughnut:環狀圖,line:折線圖,
pie:餅狀圖,scatter:散點圖,radar:雷達圖,stock:箱線圖]
workbook.close()
摘抄於:https://www.jianshu.com/p/187e6b86e1d9
2 Word編程
安裝python-dock
官方文檔:http://python-docx.readthedocs.io/en/latest/
新建文檔: document = Document();document.save( 'filename.docx' )
添加文本: text = document.add paragraph( 'contentof the paragraph' )
更改項目符號: text.style ='' stylename'
添加標題: document.add heading( 'head-name' )
添加圖片: document.add picture( 'path-of-the-picture' )
字體設置
設置加粗: text.run.font.bold = True
設置字號: text.run.font.size= pt(sizeNumber)
設置字體顏色: text.run.font.color =
創建表格: table = document.add table(rows = ,cols = )
遍歷某單元格 : cell = table.cell(row_ num,col num)
添加文本: cell.add paragraph( "content" ,style =None)
添加另一表格: cell.add table(rows,cols)
返回該單元格內文本: String content = cell.text (只讀)
返回該單元格內表格list : table[] = cell.tables (只讀)
from docx import *
from docx.shared import Inches
# 創建一個已存在的 word 文檔的對象
file = Document()
# 添加標題,標題級別設置爲2級
file.add_heading('添加標題',level=2)
# 添加段落
paragraph = file.add_paragraph('這是新增的段落')
paragraph.add_run('加粗').bold = True
paragraph.add_run('這是斜體').italic = True
# 添加表格
table = file.add_table(rows=2, cols=2)
for i in range(2):
for j in range(2):
cell = table.cell(i, j)
cell.text = "第"+str(i+1) +"行第"+str(j+1) +"列"
# 添加圖片,圖片是當前文件夾下的 img.png 圖片
file.add_picture('img.png',width=Inches(4.0))
# 保存新創建的 word 文檔
file.save('testDoc.docx')
注意:一個run對象是相同樣式文本的延續(只要文本的格式沒有改變,那麼就是一個run,一旦改變了就是列外一個run了)
摘自於:https://blog.csdn.net/qq_37648632/article/details/81661007