[英]Python program to read Excel files and copy their sqls into new text file
我對Python很陌生,需要一些幫助。
我正在使用Python 3.6.1。 我正在創建一個Python腳本,該腳本將從文件夾中讀取所有Excel(.xlsx)文件。 在這些文件中,它應搜索包含“ SQL”選項卡作為工作表的文件,然后應從工作表的“ SQL”選項卡復制A2列,並創建一個與附加到其上的Excel文件同名的.sql。 到目前為止,我已經能夠從該文件夾中讀取所有.xlsx文件,查看它們是否具有SQL選項卡,然后復制A2列。 有人可以幫助我指導如何創建.sql文件,並將所有Excel文件的sql復制到這些.sql文件中,並將Excel名稱附加到.sql文件中。
以下是我現在的位置
import os
import pandas as pd
from os import walk
from openpyxl import load_workbook
cpt = sum([len(files) for r, d, files in os.walk(r"C:\Users\Data_Dumps\New folder")])
for dirpath, dirnames, filenames in walk(r'C:\Users\Data_Dumps\New folder'):
print('Total Files in the folder are: %d' %cpt)
print('Total filenames are')
print(filenames)
files = os.listdir(dirpath)
print(files)
files_xls = [f for f in filenames if f[-4:] == 'xlsx']
print('Excel files are:')
print(files_xls)
#Creating data frame to store SQL
df = pd.DataFrame()
files_xls_string = '\n'.join(files_xls)
df = df.append(files_xls_string)
wb = load_workbook(files_xls_string, read_only=True)
if 'SQL' in wb.sheetnames:
sheet = wb.get_sheet_by_name('SQL')
SQL = sheet['A2'].value
@Shams注意 :這是一條SQL SELECT語句,您的數據在哪里?
A2值,例如:
select ip.item_code , ip.gla_code_ar ,r.ruleit_text LCSPAINTSZ from item i , itemplant ip , ruleit r where i.item_code = ip.item_code and ip.plant_code = '14' and i.item_active = 1 --and i.item_code = '457332' and i.item_code = r.item_code and r.urule_code = 'LCSPAINTSZ'
# python 3.6 way is shorter
from pathlib import Path
# do you know the basename of the file you just read?
filename_xls = 'file123'
# is cell read as string?
cell_content_str = """select ip.item_code , ip.gla_code_ar ,r.ruleit_text LCSPAINTSZ
from item i , itemplant ip , ruleit r where i.item_code = ip.item_code
and ip.plant_code = '14' and i.item_active = 1 --and i.item_code = '457332'
and i.item_code = r.item_code and r.urule_code = 'LCSPAINTSZ'"""
def make_sql_filename(basename: str):
return f'{basename}.sql'
def write_to_sql_file(content: str, basename: str):
Path(make_sql_filename(basename)).write_text(content)
if __name__ == '__main__':
write_to_sql_file(cell_content_str, filename_xls)
通常,它看起來太簡單而不能作為答案,也許我在這個問題上漏了一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.