目次
序文
こんにちは、みんな
今日は、Pythonを使用してローカルのExcelクエリと生成されたプログラムを作成する方法を説明します
必要
Excelをクエリして生成するための簡単なクエリエントリを使用してプログラムを作成します
実験手順
1exeを開いてインターフェイスをポップアップします
2お問い合わせカード番号クリックお問い合わせがあります
3クエリの結果が下に表示され、クエリの結果が新しい結果のExcelファイルに追加されます
4新しい結果のExcelファイル形式は、ソースファイル形式と同じですが、毎回最後に追加されます
今日は、Pythonを使用してローカルのExcelクエリと生成されたプログラムを作成する方法を説明します
Excelプレビュー画像
1.2モジュールをインポートし、Excelファイルを読み取ります
後で使用されるモジュールは、pandas、os、xlwt、およびuuidです。
インポートでインポートされたコード:
パンダ、os、xlwt、uuidをインポートします
インポート後、Excelファイルを読み取る必要があります。Excelを読み取るには、パンダのread_excel関数を使用します。
試す: exl = pandas.read_excel(aim_path) を除外する: print('ファイルが見つかりません!ファイルパスまたはファイルが存在するかどうかを確認してください') os._exit(0)
インポートされたばかりのosモジュールは、例外キャプチャを実行し、ファイルが見つからない場合に終了します。
お問い合わせ
2.1Excelのインデックス作成と入力
後続のクエリを容易にするために、DataFrameのインデックスをクエリ入力のカード番号に設定する必要があります。次に、ユーザーが照会できるように、カード番号でインデックス付けされたDFを出力します。最後に、ループ入力が始まります。
exl.set_index('カード番号'、インプレース= True) print(f'{exl} \ n') 一方1: 試す: idx = input('カード番号(終了するには「exit」と入力):') idx =='exit'の場合: os._exit(0)
2.2クエリを開始してプログラムを充実させる
クエリはdataframe.loc[index]を使用して実行され、最後に返されたシリーズが出力されます。ユーザーがカード番号以外の情報を入力できないようにするために、例外キャプチャが追加されています。
res = exl.loc [idx] print(f'\ n {res} \ n') KeyErrorを除く: print('あなたのカード番号が間違っている可能性があります!このカード番号の人が見つかりません〜\ n') 継続する を除外する: print('問題が発生しました!\ n') 継続する
クエリ結果をExcelに追加する
3.1新しいExcelの読み取りまたは作成
3.1.1読む
上記と同じように読み、read_excelを使用します
試す: res_exl = pandas.read_excel(res_path)
3.1.2新しいワークブックとシート
スキルを披露するのはxlwtモジュールの番です〜Workbook関数を使用して新しいワークブックを作成し、add_sheet関数を使用してシートを追加します
を除外する: ブック=xlwt.Workbook() sheet = workbook.add_sheet('new') col = 0
3.1.2書き込み列
列の位置で、クエリのExcel列インデックスを入力する必要があります。
list(pandas.read_excel(aim_path).columns.values)
取得できる。次に、列インデックスにxlwt.writeを入力し、最後にDFを保存してExcelを読み取ります。
リスト内のiの場合(pandas.read_excel(aim_path).columns.values): sheet.write(0、col、i) col + = 1 workbook.save(res_path) res_exl = pandas.read_excel(res_path)
3.2結果を追加する
まず、結果のres変数をリスト型に設定します。次に、結果に含まれていないカード番号をこのリストに追加します。最後に、このリストをシリーズに設定します(インデックスはExcelクエリの列インデックスです)。
res_series_data = list(res) res_series_data.insert(2、idx) res_series = pandas.Series( res_series_data、 インデックス=リスト( pandas.read_excel(aim_path).columns.values )。 )。
これでシリーズが構築され、追加する準備が整いました。追加後、Excelを保存します。
res_exl.loc [str(uuid.uuid1())] = res_series 試す: res_exl.to_excel(res_path、index = False) を除外する: print('書き込みに失敗しました')
ここで、uuid.uuid1は、繰り返しを避け、他の人の値を変更するために、インデックスをランダムに生成するために使用されます。最後の数行は保存操作です。 python index = False
これは、インデックスが非表示になっていることを意味します。
完全なコード
試す: exl = pandas.read_excel(aim_path) を除外する: print('ファイルが見つかりません!ファイルパスまたはファイルが存在するかどうかを確認してください') os._exit(0) exl.set_index('カード番号'、インプレース= True) print(f'{exl} \ n') 一方1: 試す: idx = input('カード番号(終了するには「exit」と入力):') idx =='exit'の場合: os._exit(0) res = exl.loc [idx] print(f'\ n {res} \ n') KeyErrorを除く: print('あなたのカード番号が間違っている可能性があります!このカード番号の人が見つかりません〜\ n') 継続する を除外する: print('問題が発生しました!\ n') 継続する 試す: res_exl = pandas.read_excel(res_path) を除外する: ブック=xlwt.Workbook() sheet = workbook.add_sheet('new') col = 0 リスト内のiの場合(pandas.read_excel(aim_path).columns.values): sheet.write(0、col、i) col + = 1 workbook.save(res_path) res_exl = pandas.read_excel(res_path) res_series_data = list(res) res_series_data.insert(2、idx) res_series = pandas.Series( res_series_data、 インデックス=リスト( pandas.read_excel(aim_path).columns.values )。 )。 res_exl.loc [str(uuid.uuid1())] = res_series 試す: res_exl.to_excel(res_path、index = False) を除外する: print('書き込みに失敗しました')
よろしくお願いします〜