日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python如何安装扩展库openpyxl和numpy_Python第三方库之openpyxl(2)

發布時間:2023/12/4 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python如何安装扩展库openpyxl和numpy_Python第三方库之openpyxl(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python第三方庫之openpyxl(2)

簡單的使用

寫一個工作簿

>>> from openpyxl importWorkbook>>> from openpyxl.compat importrange>>> from openpyxl.utils importget_column_letter>>>

>>> wb =Workbook()>>>

>>> dest_filename = 'empty_book.xlsx'

>>>

>>> ws1 =wb.active>>> ws1.title = "range names"

>>>

>>> for row in range(1, 40):

... ws1.append(range(600))>>>

>>> ws2 = wb.create_sheet(title="Pi")>>>

>>> ws2['F5'] = 3.14

>>>

>>> ws3 = wb.create_sheet(title="Data")>>> for row in range(10, 20):

...for col in range(27, 54):

... _= ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))>>> print(ws3['AA10'].value)

AA>>> wb.save(filename = dest_filename)

View Code

讀一個現有的工作簿

>>> from openpyxl importload_workbook>>> wb = load_workbook(filename = 'empty_book.xlsx')>>> sheet_ranges = wb['range names']>>> print(sheet_ranges['D18'].value)3

注意:在loadworkbook中有幾個可以使用的標志

1.guess_types?在讀取單元時啟用或禁用(默認)類型推斷

2.data_only?控制帶有公式的單元格是否有公式(默認)或上次Excel讀取表的值

3.keep_vba?控制任何可視的基本元素是否被保留(默認)。如果它們被保存了它們仍然是不可編輯的

注意:openpyxl目前沒有在Excel文件中讀取所有可能的項目,因此如果打開并保存相同的名稱,那么圖像和圖表將從現有文件中丟失

使用數字格式

>>> importdatetime>>> from openpyxl importWorkbook>>> wb =Workbook()>>> ws =wb.active>>> #使用Python datetime設置日期

>>> ws['A1'] = datetime.datetime(2010, 7, 21)>>>

>>> ws['A1'].number_format'yyyy-mm-dd h:mm:ss'

>>> #您可以在具體情況下啟用類型推斷

>>> wb.guess_types =True>>> #使用字符串和%符號設置百分比

>>> ws['B1'] = '3.14%'

>>> wb.guess_types =False>>> ws['B1'].value0.031400000000000004

>>>

>>> ws['B1'].number_format'0%'

使用公式

>>> from openpyxl importWorkbook>>> wb =Workbook()>>> ws =wb.active>>> #添加一個簡單的公式

>>> ws["A1"] = "=SUM(1, 1)"

>>> wb.save("formula.xlsx")

注意:你必須使用英文名作為一個函數,函數參數必須用逗號隔開,而不是其他的標點符號,比如分號

openpyxl從來沒有計算過公式但是可以檢查公式的名稱

>>> from openpyxl.utils importFORMULAE>>> "HEX2DEC" inFORMULAE

True

合并/ 分割單元格

>>> from openpyxl.workbook importWorkbook>>>

>>> wb =Workbook()>>> ws =wb.active>>>

>>> ws.merge_cells('A2:D2')>>> ws.unmerge_cells('A2:D2')>>>

>>> #相當于

>>> ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)>>> ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)

插入圖像

>>> from openpyxl importWorkbook>>> from openpyxl.drawing.image importImage>>>

>>> wb =Workbook()>>> ws =wb.active>>> ws['A1'] = 'You should see three logos below'

>>> #制作一個圖片

>>> img = Image('logo.png')

>>> #在單元格旁邊添加工作表和錨

>>> ws.add_image(img, 'A1')>>> wb.save('logo.xlsx')

折疊列

>>> importopenpyxl>>> wb =openpyxl.Workbook()>>> ws =wb.create_sheet()>>> ws.column_dimensions.group('A','D', hidden=True)>>> wb.save('group.xlsx')

與pandas和NumPy一起工作

NumPy支持

openpyxl已經為NumPy類型的浮點數、整數和布爾型提供了支持。使用pandas的時間戳類型支持DateTimes

Working with Pandas Dataframes

openpyxl.utils.dataframe.dataframe_to_rows()函數提供了一個簡單的方式來處理Pandas Dataframes

from openpyxl.utils.dataframe importdataframe_to_rows

wb=Workbook()

ws=wb.activefor r in dataframe_to_rows(df, index=True, header=True):

ws.append(r)

雖然pandas本身支持轉換為Excel,但這為客戶端代碼提供了額外的靈活性,包括將dataframes直接傳輸到文件的能力。

將一個dataframe轉換為高亮顯示標題和索引的工作表

wb =Workbook()

ws=wb.activefor r in dataframe_to_rows(df, index=True, header=True):

ws.append(r)for cell in ws['A'] + ws[1]:

cell.style= 'Pandas'wb.save("pandas_openpyxl.xlsx")

或者,如果你只想轉換數據你可以使用write-only模式

from openpyxl.cell.cell importWriteOnlyCell

wb= Workbook(write_only=True)

ws=wb.create_sheet()

cell=WriteOnlyCell(ws)

cell.style= 'Pandas'

defformat_first_row(row, cell):for c inrow:

cell.value=cyieldcell

rows=dataframe_to_rows(df)

first_row=format_first_row(next(rows), cell)

ws.append(first_row)for row inrows:

row=list(row)

cell.value=row[0]

row[0]=cell

ws.append(row)

wb.save("openpyxl_stream.xlsx")

View Code

這段代碼和標準的工作簿同樣適用

將工作表轉換為Dataframe

要將工作表轉換為Dataframe,您可以使用values屬性。如果工作表沒有標題或索引,這很容易

df = DataFrame(ws.values)

如果工作表確實有標題或索引,比如由pandas創建的,那么就需要做更多的工作

data =ws.values

cols= next(data)[1:]

data=list(data)

idx= [r[0] for r indata]

data= (islice(r, 1, None) for r indata)

df= DataFrame(data, index=idx, columns=cols)

總結

以上是生活随笔為你收集整理的python如何安装扩展库openpyxl和numpy_Python第三方库之openpyxl(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。