簡體   English   中英

Python程序讀取Excel文件並將其sql復制到新的文本文件中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM