import openpyxl
import sqlite3
name_xlsx = 'C:/Users/shienkikou11/Desktop/*****.xlsx'
workbook = openpyxl.load_workbook(name_xlsx)
# print("----- opened xlsx")
name_table = "column_setter-02_CSV"
worksheet = workbook[name_table]
min_row = worksheet.min_row
max_row = worksheet.max_row + 1
min_col = worksheet.min_column
max_col = worksheet.max_column
# print(max_row,max_col)
# setting location of columns_tables
loc_directories = 0
loc_databases = 1
loc_name_table = 2
loc_cord_table = 3
loc_num_blk01 = 5
loc_num_blk02 = 6
loc_num_col_res = 7
loc_blk01_01 = 8
loc_blk02_01 = 13
loc_col_res_01 = 18
# get dbfile-pass and columns-of-tables for generating SQL_select
pass_dbs =[]
sql_select_corps = []
name_tables = []
STRlikes = "Like ?"
loc_row = 1
for loc_row in range(2,max_row):
# print(loc_row,end=",")
row_data = worksheet[loc_row]
directory_db = row_data[loc_directories].value
name_db = row_data[loc_databases].value
pass_db = directory_db + name_db
pass_dbs.append(pass_db)
name_table = row_data[loc_name_table].value
cord_table = row_data[loc_cord_table].value
num_blk01 = row_data[loc_num_blk01].value
num_blk02 = row_data[loc_num_blk02].value
num_col_res = row_data[loc_num_col_res].value
# get blk1 columns
inc_loc = 0
columns_blk01 = ""
for inc_loc in range(0,num_blk01):
blk01 = row_data[loc_blk01_01+inc_loc].value
columns_blk01 = columns_blk01 + blk01
if inc_loc < num_blk01-1 :
columns_blk01 = columns_blk01 + ","
# get blk2 columns
inc_loc = 0
columns_blk02 = ""
if num_blk02 != 0:
for inc_loc in range(0,num_blk02):
blk02 = row_data[loc_blk02_01+inc_loc].value
columns_blk02.append(blk02)
if inc_loc < num_blk02-1 :
columns_blk02 = columns_blk02 + ","
# get columns_res
inc_loc = 0
res =" "
columns_res = " "
for inc_loc in range(0,num_col_res):
res = row_data[loc_col_res_01 + inc_loc].value
columns_res = columns_res + res
if inc_loc < num_col_res-1 :
columns_res = columns_res + ","
# generate SQL(select)
sql_select_corp = "SELECT "+ columns_blk01+","+columns_res+" FROM "+ name_table + " WHERE " + columns_blk01 +" "+ STRlikes
sql_select_corps.append(sql_select_corp)
name_tables.append(name_table)
print(sql_select_corp)
workbook.close()
print("----- closed xlsx")
inc_row_SQL = 1
corpname = "株式会社*****"
# max_row_SQL = 1
max_row_SQL = max_row-2
for inc_row_SQL in range(0,max_row_SQL):
# print("--------------",inc_row_SQL)
# print(pass_dbs[inc_row_SQL])
# print(sql_select_corps[inc_row_SQL])
# setting DB-pass
dbname = pass_dbs[inc_row_SQL]
#1.データベースに接続
conn = sqlite3.connect(dbname)
# 2.sqliteを操作するカーソルオブジェクトを作成
cur = conn.cursor()
# SQL execution
cur.execute(sql_select_corps[inc_row_SQL],[corpname])
# 取得したデータを出力
print("■",inc_row_SQL,"■ ",name_tables[inc_row_SQL]," --------------------------------------------------")
for row in cur:
print(row)
print(" ")
# 4.データベースの接続を切断
cur.close()
conn.close()