質問編集履歴
4
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
まだまだpython初心者のものです。classの引数で手こずっています。[ココ](https://teratail.com/questions/342439)の続きです。
|
2
2
|
###やりたいこと
|
3
|
-
エクセルから名簿の情報を読み取り、それに合わせて座席表を名前付きで動的に配置したい。
|
3
|
+
エクセルから名簿の情報を読み取り、それに合わせて座席表を名前付きで動的に配置したいのです。
|
4
|
-
エクセルファイルを違うものを選択すると、ボタンを消去して、再配置したいのですが、
|
5
|
-
消去の仕方(どのタイミング、どの項?)が分かりません。
|
6
4
|
|
5
|
+
できないで引っかかっているところは、エクセルファイルを違うものに選択すると、ボタンを消去して、再配置したいのです。
|
6
|
+
|
7
|
+
消去の仕方(どのタイミング、どの項?)が分かりません。その書き方だけでもいいので、教えてください。
|
8
|
+
|
7
9
|
以下が作成したコードです。(再編集しました)
|
8
10
|
|
9
11
|
```python
|
3
改訂版
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
まだまだpython初心者のものです。classの引数で手こずっています。[ココ](https://teratail.com/questions/342439)の続きです。
|
2
2
|
###やりたいこと
|
3
3
|
エクセルから名簿の情報を読み取り、それに合わせて座席表を名前付きで動的に配置したい。
|
4
|
-
|
4
|
+
エクセルファイルを違うものを選択すると、ボタンを消去して、再配置したいのですが、
|
5
|
+
消去の仕方(どのタイミング、どの項?)が分かりません。
|
5
6
|
|
6
|
-
以下が作成したコードです。
|
7
|
+
以下が作成したコードです。(再編集しました)
|
7
8
|
|
8
9
|
```python
|
9
10
|
#!/usr/bin/env python
|
2
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -33,7 +33,6 @@
|
|
33
33
|
prognum = [] #プログラム用番号
|
34
34
|
no_num =[] #連番で空いている番号
|
35
35
|
none_index = [] #名簿の空のセルのインデックス
|
36
|
-
meibo_s = [] #プログラム用番号にしたがって、名簿を席順に並べ変え
|
37
36
|
report = [] #初期レポート名
|
38
37
|
m_comboBox1Choices = report
|
39
38
|
m_comboBox0Choices = excels_file
|
@@ -84,7 +83,7 @@
|
|
84
83
|
|
85
84
|
#####選択したエクセルから情報を読み取る######
|
86
85
|
def excell_import (self ,file) :
|
87
|
-
global meibo
|
86
|
+
global meibo ,num
|
88
87
|
self.wb = openpyxl.load_workbook(file ,data_only=True,read_only=False)
|
89
88
|
self.sheet = self.wb['date']
|
90
89
|
#####ファイルへのフルパス#####
|
@@ -94,6 +93,7 @@
|
|
94
93
|
|
95
94
|
####配列####
|
96
95
|
self.seki = int(self.sheet.cell(3,6).value) #座席の数の値を取得(空白の席を含む数)
|
96
|
+
num = self.seki
|
97
97
|
####名簿を取得####
|
98
98
|
for row in self.sheet['A5:IV'+ str(self.seki + 4)] :
|
99
99
|
for col in row :
|
@@ -102,16 +102,12 @@
|
|
102
102
|
#####座席チェック###### 全てのボタンでか調べる
|
103
103
|
def check(self) :
|
104
104
|
for check in range(seki) : #席の数だけ繰り返す
|
105
|
-
label = str(
|
105
|
+
label = str(meibo[check][1]) +". "+ str(meibo[check][4]+ '\n' + str( meibo[check][2]) ) #名簿から氏名等を再取得
|
106
|
-
if
|
106
|
+
if meibo[check][self.col + 6] == None : #日付が空白なら
|
107
107
|
self.button[check].SetLabel(label)
|
108
|
-
self.button[check].SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
|
109
|
-
self.button[check].SetBackgroundColour( wx.Colour( 128, 255, 255 ) )
|
110
108
|
self.button[check].Enable() #クリック可にする
|
111
109
|
else :
|
112
|
-
self.button[check].SetLabel(label + '\n' + str(
|
110
|
+
self.button[check].SetLabel(label + '\n' + str(meibo[check][self.col + 6])) #提出日付を付与
|
113
|
-
self.button[check].SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
|
114
|
-
self.button[check].SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_3DLIGHT ) )
|
115
111
|
self.button[check].Disable() #クリック不可にする
|
116
112
|
|
117
113
|
|
@@ -123,15 +119,11 @@
|
|
123
119
|
self.obj_button =[]
|
124
120
|
self.button = []
|
125
121
|
for i in range( num ) : #名簿の長さだけ繰り返す
|
126
|
-
labeltext = str(
|
122
|
+
labeltext = str(meibo[i][1]) +". "+ str(meibo[i][4]+'\n' + str( meibo[i][2]) )
|
127
123
|
self.button.append(wx.Button(self.mainPanel, wx.ID_ANY, labeltext, wx.DefaultPosition, wx.DefaultSize, wx.BU_LEFT ) )
|
128
124
|
|
129
125
|
sizer = wx.GridSizer( 10 , 20 , 5, 10)
|
130
126
|
for j in range( num ) :
|
131
|
-
self.button[j].SetFont(wx.Font( 11, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "MS Pゴシック"))
|
132
|
-
self.button[j].SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_GRAYTEXT ) )
|
133
|
-
self.button[j].SetBackgroundColour( wx.Colour( 128, 255, 255 ) )
|
134
|
-
self.button[j].Bind(wx.EVT_BUTTON, self.button_func ) #ボタンクリック時をバインド
|
135
127
|
sizer.Add(self.button[j],1, flag=wx.EXPAND )
|
136
128
|
self.obj_button.append(id(self.button[j]))
|
137
129
|
|
1
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,6 +22,8 @@
|
|
22
22
|
excels =glob.glob(dir + '/*.xls*') #xls,xlsxの拡張子のファイルをフルパス付リスト化
|
23
23
|
excels.remove(dir + '\meibo.xlsx') #meibo.xlsxを除く
|
24
24
|
excels_file =[]
|
25
|
+
for e in excels : #meibo.xlsxを除いて、ファイル名のみのリストを作成
|
26
|
+
excels_file.append(e.replace(dir+'\', ''))
|
25
27
|
|
26
28
|
####定義変数####
|
27
29
|
myclass = "" #会議セルの値
|