python3對excel讀寫openpyxl


讀取:
'''
sheet1里面的值按照行取出來,每行組成一個列表 [[1,2,6],[3,4,5],[7,8,9]]
'''
import openpyxl
from openpyxl import load_workbook
def excel_rows_value(file_name):
    wb = openpyxl.load_workbook(file_name)   #打開excel
    ws = wb.active   #打開當前活躍的sheet

    rows = []
    for row in ws.rows:
        row1 = []
        for cell in row:
            row1.append(cell.value)
        rows.append(row1)
    return rows

print(excel_rows_value('test_case.xlsx'))

 

'''
文件中的值,以行為單位取出,以鍵值對方式存儲
[{"name":"xgy","age":31,"sex":"男"},{"name":"zf","age":28,"sex":"女"}]

 

'''
#方法一:
import openpyxl
from openpyxl import load_workbook

def excel_row_value_dice(file_name):
    wb = openpyxl.load_workbook(file_name)
    ws = wb.active
    row_key = []
    row_value = []

    #獲取表頭內容
    for row in ws.iter_rows('A1:C1'):
        for cell in row:
            row_key.append(cell.value)
    #print(row_key)
    num = ws.max_column
    #print(num)
    #獲取值
    for row in ws.iter_rows('A2:C'+str(num)):
        row_value_list = []
        for cell in row:
            row_value_list.append(cell.value)
        row_value.append(row_value_list)
    #print(row_value)

    result = []

    for i in range(len(row_value)):
        row_dict = {}
        for j in range(len(row_key)):
            row_dict[row_key[j]] = row_value[i][j]
        result.append(row_dict)
    #print(result)
    return result

print(excel_row_value_dice('test_case.xlsx'))


#方法二:
import openpyxl
from openpyxl import load_workbook

def excel_row_value_dice(file_name):
    wb = openpyxl.load_workbook(file_name)
    ws = wb.active

    #取出每行的值,以list方式存放
    rows_list = []
    for row in ws.rows:
        row_list = []
        for cell in row:
            row_list.append(cell.value)
        rows_list.append(row_list)
    #print(rows_list)

    #結果轉換成鍵值對的形式存放
    result = []
    for i in range(len(rows_list)-1):
        row_dict = {}
        for j in range(len(rows_list[0])):
            row_dict[rows_list[0][j]] = rows_list[i+1][j]
        result.append(row_dict)
    #print(reslut)
    return result


case = excel_row_value_dice('test_case.xlsx')
for i in case:
    print(i)

 

excel的寫:

創建sheet

from openpyxl import Workbook

wb = Workbook() #創建文件對象

#ws = wb.active #打開sheet

ws1 = wb.create_sheet(title='第一個sheet',index=0) #新建一個指定名的sheet,默認放到最后面,可指定具體位置
ws2 = wb.create_sheet()
ws3 = wb.create_sheet(title='最前面的sheet',index=0)
ws4 = wb.create_sheet('1')
ws5 = wb.create_sheet('2')
ws6 = wb.create_sheet('3')
ws7 = wb.create_sheet(title='11111',index=1)
#ws8.title = u'暑期專題'
ws1.sheet_properties.tabColor = "1072BA" #設定sheet的標簽的背景顏色

#print(wb['最前面的sheet'])
#print(wb.sheetnames)

#獲取全部sheet 的名字,遍歷sheet名字
# for i in wb.sheetnames:
# print(i)

#遍歷獲取sheet對象,按照sheet順序獲取
# for sheet in wb:
# print (sheet)
# print(sheet.title)
#刪除某個sheet
del wb['3']

wb.save('smple.xlsx')

 

寫入內容:

from openpyxl  import Workbook
import time
import datetime
import locale

wb = Workbook()
ws = wb.active

#寫入單個單元格,可以寫入數字,中午,字符串
ws['A1'] = 1
ws['B1'] = '暑期專題' +'shuqi'

#寫入多個單元格,已經存在的文件覆蓋,第幾次寫入,就寫在第幾行
ws['B1'] = 7
ws.append([4,5,6])
ws.append([1,2,3])

ws['A2'] = time.time()

#插入一個當前時間
ws['A3'] = datetime.datetime.now()
#寫入一個自定義的時間格式
locale.setlocale(locale.LC_CTYPE, 'chinese')
ws['A4'] =time.strftime("%Y年%m月%d日 %H時%M分%S秒",time.localtime())

wb.save('smple1.xlsx')

 

#4、 操作單元格

from openpyxl import Workbook
wb = Workbook()

ws = wb.create_sheet('Mysheet')  #創建一個sheet

ws['A1'] = 123.11
ws['B2'] = '暑期專題'
d = ws.cell(row=4, column=2, value=10)

print(ws['A1'].value)
print(ws['B2'].value)
print(d.value)
print(ws.cell(row=4, column=2, value=10).value)  #行號和列號從1開始

wb.save('smple1.xlsx')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM