概要
今回はpythonによるexcel操作するプログラムを書いてみました。
学習のメモ程度に記述していますのでご承知ください。
参考
実行環境
・windows:Windows11Pro 23H2
・python:3.12.3
ソースコード
test.py
import pandas as pd
import sys
import openpyxl
# Excelファイルを読み込む inputファイル
input_file = sys.argv[1]
wb = openpyxl.load_workbook(input_file)
# 新しいExcelファイルにデータを書き込む ハイパーリンクも保存する
output_file = 'output_file.xlsx'
wb.save(output_file)
print(f'{input_file} から {output_file} へコピー完了しました!')
'''
# セルのハイパーリンクと文字列を取得して配列に格納する
'''
# Excelファイルを読み込む outputファイル
df = pd.read_excel(output_file)
wb = openpyxl.load_workbook(output_file)
ws = wb.active
link = []
for row in ws.iter_rows():
for cell in row:
if cell.hyperlink:
hyperlink = cell.hyperlink.target
text = cell.value
print(f'ハイパーリンク: {hyperlink}, 文字列: {text}')
temp_text_hype = []
temp_text_hype.append(text)
temp_text_hype.append(hyperlink)
link.append(temp_text_hype)
print(link)
'''
# データフレームのすべてのセルデータを1つずつ取得(pandasで一行ずつ取得)
'''
for index, row in df.iterrows():
# print(row.values)
cell_data = ', '.join(map(str, row.values))
print(cell_data)
'''
# 特定の列のデータを取得(例として 'ColumnName' 列を取得)
'''
# 取得したい列タイトル
titles = ['番号','文献リンク','ログ']
column_data = df[titles[2]].tolist()
print(column_data)
# 文字列をカンマ区切りに分割する
for i in column_data:
print(i)
temp = i.split(',')
temp_num = len(temp)
print(temp)
print(temp_num)