GO-AHEADの日記

GO-AHEADで出版した書籍の紹介をします

PythonでExcelプログラミング入門-15

PythonExcelプログラミング入門

amazon kindleを出版しました。


4.3 配列を使ったプログラム-3 続き

numpyのライブラリにもソート関数があります。
この関数を用いると、同様にソートができます。

import openpyxl
# numpyのクラスを、mathpyを使うと宣言します。
import numpy as mathpy

Ex_book1=openpyxl.load_workbook('G:\excel\Book1.xlsx')

Ex_book1_ws1=Ex_book1["Sheet1"]

x=#xを配列として使う
so_x=

for i in range(1,11):
x.append(int(mathpy.random.rand()*100)) #xに乱数を代入します
print(x[i-1])

Ex_book1_ws1.cell(i,1).value=x[i-1]

for i in range(0,10):
for j in range(i,10):
if x[j]>x[i]:
tmp=x[j]
x[j]=x[i]
x[i]=tmp

so_x=mathpy.sort(x)[::-1]#[::-1]を除くと昇順に並ぶ

for i in range(0,10):
Ex_book1_ws1.cell(i+1,2).value=x[i]
Ex_book1_ws1.cell(i+1,3).value=so_x[i]

#ファイルを保存します。
Ex_book1.save('G:\excel\Book1.xlsx')

f:id:GO-AHEAD:20201122134338p:plain


 

 

win32comでのプログラム(参考)

import win32com.client
# numpyのクラスを、mathpyを使うと宣言します。
import numpy as mathpy

book1_ap = win32com.client.Dispatch('Excel.Application')

book1_ap.Visible = 1

Wb1=book1_ap.Workbooks.Open(Filename='G:\excel\Book1.xlsx')

Sh1= Wb1.Worksheets("Sheet1")

x=[]#xを配列として使う

for i in range(1,11):
x.append(int(mathpy.random.rand()*100)) #xに乱数を代入します
print(x[i-1])

Sh1.Cells(i,1).Value=x[i-1]

for i in range(0,10):
for j in range(i,10):
if x[j]>x[i]:
tmp=x[j]
x[j]=x[i]
x[i]=tmp

for i in range(0,10):
Sh1.Cells(i+1,2).Value=x[i]


#ファイルを保存します。
Wb1.SaveAs('G:\excel\Book1.xlsx')
Wb1.Close

#終了します。
book1_ap.Quit()