Python3对Excel表格操作(写入、追加)
生活随笔
收集整理的這篇文章主要介紹了
Python3对Excel表格操作(写入、追加)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python3 對Excel操作
方法有很多,pandas可以讀取Excel數據,創建Excel表格,寫入數據,但是好像不能實現追加,后寫入的數據會覆蓋到以前數據;xlrd、xlwt、xlutils可是實現對xls格式的表格數據的讀取、寫入以及修改(如:追加);openpyxl可以實現對xlsx格式的表格數據進行讀、寫、修改等操作。本例僅以表格的寫入與追加為例,簡單說明一下Python對Excel的操作,詳細可參考上面這些工具包的說明文檔。
import pandas as pd import numpy as np df = pd.DataFrame({'name': ['Jack', 'kate', 'Jim', 'Steve', 'Mike', 'Lucy'],'Gender': ['M', 'F', 'M', 'M', 'M', 'F'],'Age': [17, 15, 22, 34, 18, 23],'Height': [173, 168, 164, 180, 182, 190],'Hobby': ['Reading', 'Music', 'Football', 'Reading', 'Cooking', 'Running']} ) df| Jack | M | 17 | 173 | Reading |
| kate | F | 15 | 168 | Music |
| Jim | M | 22 | 164 | Football |
| Steve | M | 34 | 180 | Reading |
| Mike | M | 18 | 182 | Cooking |
| Lucy | F | 23 | 190 | Running |
df1 = df.copy()
df2 = df.copy()
df3 = df.copy()
df的追加,設置ignore_index=True可以自動遞增索引號
df4 = df.append(df1, ignore_index=True) df4| Jack | M | 17 | 173 | Reading |
| kate | F | 15 | 168 | Music |
| Jim | M | 22 | 164 | Football |
| Steve | M | 34 | 180 | Reading |
| Mike | M | 18 | 182 | Cooking |
| Lucy | F | 23 | 190 | Running |
| Jack | M | 17 | 173 | Reading |
| kate | F | 15 | 168 | Music |
| Jim | M | 22 | 164 | Football |
| Steve | M | 34 | 180 | Reading |
| Mike | M | 18 | 182 | Cooking |
| Lucy | F | 23 | 190 | Running |
操作xls格式的表格
import xlrd # 讀取 import xlwt # 寫入 from xlutils.copy import copy # 修改(追加寫入):xlutilsdef write2xls(path, sheetname, value):index = len(value) # 獲取需要寫入數據的行數workbook = xlwt.Workbook() # 創建一個工作簿sheet = workbook.add_sheet(sheetname) # 在工作簿中新建一個表格for i in range(index):for j in range(len(value[i])):sheet.write(i, j, value[i][j]) # 向表格中寫入數據(對應的行和列)workbook.save(path)print("xls格式表格寫入成功!")def append2xls(path, sheetname, value):index = len(value) # 獲取需要寫入的數據的行數workbook = xlrd.open_workbook(path) # 打開工作簿 # sheets = workbook.sheet_names() # 獲取工作簿里的所有表格worksheet = workbook.sheet_by_name(sheetname) # 獲取工作簿中所有表格中的第一個表格rows_old = worksheet.nrows # 獲取表格中已存在的數據的行數new_workbook = copy(workbook) # 將xlrd對象拷貝轉化為xlwt對象new_worksheet = new_workbook.get_sheet(0) # 獲取轉化后工作簿中的第一個表格for i in range(index):for j in range(len(value[i])):new_worksheet.write(i+rows_old, j, value[i][j]) # 追加寫入數據,注意從 i+rows_old 行開始new_workbook.save(path)print("xls格式表格追加寫入成功!")column_name = np.array([df4.columns])write2xls(path='./zx_test.xls', sheetname='text', value=column_name)append2xls(path='./zx_test.xls', sheetname='text', value=df1.to_numpy()) append2xls(path='./zx_test.xls', sheetname='text', value=df4.to_numpy()) xls格式表格寫入成功! xls格式表格追加寫入成功! xls格式表格追加寫入成功!操作xlsx格式的表格文件
import openpyxldef write2xlsx(path, sheetname, value):index = len(value)workbook = openpyxl.Workbook() # 實例化sheet = workbook.active # 激活worksheetsheet.title = sheetnamefor i in range(index):for j in range(len(value[i])):sheet.cell(row=i+1, column=j+1, value=str(value[i][j]))workbook.save(path)print("xlsx格式表格數據寫入成功!")def append2xlsx(path, sheetname, value):index = len(value)workbook = openpyxl.load_workbook(path)sheet = workbook[sheetname]for i in range(index):sheet.append(list(value[i])) # append的內容必須是可迭代對象,里面的value必須是str類型workbook.save(path)print("xlsx格式表格數據追加成功!") column_name = np.array([df4.columns]) write2xlsx(path='./zx_test_2.xlsx', sheetname='text', value=column_name)data = df4.to_numpy() append2xlsx(path='./zx_test_2.xlsx', sheetname='text', value=data)data2 = df1.to_numpy() append2xlsx(path='./zx_test_2.xlsx', sheetname='text', value=data2) xlsx格式表格數據寫入成功! xlsx格式表格數據追加成功! xlsx格式表格數據追加成功!結果如下:
總結
以上是生活随笔為你收集整理的Python3对Excel表格操作(写入、追加)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 入侵痕迹清理技巧
- 下一篇: 无锡python培训班,无锡Python