sydomain

思绪来的快,去的也快,偶尔在这里停留。

python-Excel数据合并工具(文件中多个sheets合并到一起)

import pandas as pd      
import tkinter as tk      
from tkinter import filedialog, Button  # 添加 Button 到导入列表中  
 
def merge_and_save():      
    # 打开文件选择对话框,选择Excel文件      
    file_path = filedialog.askopenfilename(title="选择Excel文件", filetypes=[("Excel文件", "*.xlsx")])      
         
    # 读取Excel文件中的所有工作表      
    all_sheets = pd.read_excel(file_path, sheet_name=None)      
         
    # 合并所有工作表的数据到一个新表中      
    merged_data = pd.concat(all_sheets, ignore_index=True)        
         
    # 将合并后的数据保存到新的Excel文件中      
    output_file = filedialog.asksaveasfilename(defaultextension=".xlsx", filetypes=[("Excel文件", "*.xlsx")])      
    merged_data.to_excel(output_file, index=False)      
         
    print(f"数据已合并并保存到 {output_file}")      
   
# 创建GUI窗口      
root = tk.Tk()      
root.title("Excel数据合并工具(文件中多个sheets合并到一起)")  # 设置标题    
root.configure(background='darkblue')  # 设置背景颜色为蓝色    
root.geometry("600x300")  # 设置窗口大小为6000x300像素    

# 添加文字说明  
label = tk.Label(root, text="1.选择你文件夹中要合并的文件\n2.跟着会弹出要保存的路径界面\n3.自定义名称并保存到你指定地方\n4.程序会自动处理", bg="darkblue", fg="white", font=("Arial", 16))  
label.pack(pady=10)  # 垂直方向上添加一些间距  

# 在标签的右下角添加作者信息  
author_label = tk.Label(root, text="作者:sy", bg="darkblue", fg="white", font=("Arial", 12))  
author_label.place(x=350, y=270, anchor="se")  # 将作者标签放置在标签的右下角  

# 创建文件选择按钮    
file_select_button = Button(root, text="选择文件", command=merge_and_save)    
file_select_button.pack()    
   
# 创建关闭按钮    
close_button = Button(root, text="关闭", command=root.quit)    
close_button.pack()    
   
root.mainloop()  # 启动GUI事件循环

python-合并excel文件

import os  
import pandas as pd  
import tkinter as tk  
from tkinter import filedialog  
from tkinter.ttk import Button, Frame, Label  
 
def read_and_merge_excel_files(folder_path):  
    all_dfs = []  
    for file_name in os.listdir(folder_path):  
        if file_name.endswith(".xlsx"):  
            file_path = os.path.join(folder_path, file_name)  
            try:  
                df = pd.read_excel(file_path, engine='openpyxl')  
                all_dfs.append(df)  
            except Exception as e:  
                print(f"An error occurred with {file_name}: {e}")  
        else:  
            print(f"跳过非Excel文件: {file_name}")  
     
    if all_dfs:  
        merged_data = pd.concat(all_dfs, ignore_index=True)  
        output_file = os.path.join(folder_path, 'new_' + file_name)  
        merged_data.to_excel(output_file, index=False, engine='openpyxl')  
        print("已完成: 合并所有Excel文件到当前目录下以new_开头的文件")  
    else:  
        print("没有找到任何Excel文件")  
 
def select_folder():  
    folder_path = filedialog.askdirectory(title="选择文件夹")  
    if folder_path:  
        read_and_merge_excel_files(folder_path)  
    else:  
        print("请选择一个文件夹")  
 
def create_close_button(frame):  
    close_button = Button(frame, text="关闭", command=root.quit)  
    close_button.pack(side=tk.RIGHT)  
 
def create_title_frame():  
    title_frame = Frame(root, bg="blue", width=200, height=50)  
    Label(title_frame, text="Excel批量处理程序", bg="blue", fg="white").pack(side=tk.LEFT)  
    create_close_button(title_frame)  
    title_frame.pack(pady=10)    
 
# 创建主窗口    
root = tk.Tk()    
root.title("Excel 合并文件")    
root.geometry("400x300")  # 设置窗口大小    
root.configure(background='darkblue')  # 设置背景色   
 
# 添加文字说明  
label = tk.Label(root, text="1.选择你放文件的文件夹即可\n2.程序自动处理并自动保存\n\n例子:文件A放在文件夹B\n程序处理之后的新文件\n将自动保存在当前文件中", bg="darkblue", fg="white", font=("Arial", 16))  
label.pack(pady=10)  # 垂直方向上添加一些间距  

# 在标签的右下角添加作者信息  
author_label = tk.Label(root, text="作者:sy", bg="darkblue", fg="white", font=("Arial", 12))  
author_label.place(x=350, y=270, anchor="se")  # 将作者标签放置在标签的右下角  
   
# 添加一个按钮,点击时执行select_folder函数    
button = tk.Button(root, text="选择文件夹", command=select_folder)    
button.pack()    
   
# 运行主循环,等待事件处理    
root.mainloop()

python处理excel表格批量提取表格中的列进行排序(指定为桌面)

import os  
import pandas as pd  
import tkinter as tk  
from tkinter import filedialog  
 
def read_and_sort_excel():  
    # 指定桌面路径  
    desktop_path = os.path.join(os.path.expanduser("~"), "Desktop")  
 
    # 指定Excel文件名  
    excel_filename = "名单.xlsx"  
 
    # 构建完整的Excel文件路径  
    excel_file_path = os.path.join(desktop_path, excel_filename)  
 
    # 检查文件是否存在  
    if os.path.exists(excel_file_path):  
        try:  
            # 读取Excel文件  
            df = pd.read_excel(excel_file_path, engine='openpyxl')  
 
            # 提取"列名"列并重新排序  
            column_values = df[['快递单号', '姓名', '联系方式', '收货地址', '数量']].sort_values(by='快递单号')  
 
            # 保存为新文件(你可以根据需要更改新文件的名称)  
            new_file_path = os.path.join(desktop_path, 'new_' + excel_filename)  
            column_values.to_excel(new_file_path, index=False, engine='openpyxl')  
            print("已完成!")  
        except Exception as e:  
            print(f"An error occurred: {e}")  
    else:  
        print("文件不存在")  
 
# 创建主窗口  
root = tk.Tk()  
root.title("Excel Sorter")  
 
# 添加一个按钮,点击时执行read_and_sort_excel函数  
button = tk.Button(root, text="开始", command=read_and_sort_excel)  
button.pack()  
 
# 运行主循环,等待事件处理  
root.mainloop()

python处理excel表格批量提取表格中的列进行排序(窗口模式)

import os
import pandas as pd
import tkinter as tk
from tkinter import filedialog
from tkinter.ttk import Button, Frame, Label

def read_and_sort_excel_folder(folder_path):
    for file_name in os.listdir(folder_path):
        if file_name.endswith(".xlsx") or file_name.endswith(".xls"):
            file_path = os.path.join(folder_path, file_name)
            try:
                df = pd.read_excel(file_path, engine='openpyxl')
                df['姓名'] = df['姓名'].astype(str)
                df['联系方式'] = df['联系方式'].astype(str)
                df['收货地址'] = df['收货地址'].astype(str)
                df['快递单号'] = df['快递单号'].astype(str)
                column_values = df[['姓名', '联系方式', '收货地址', '快递单号']].sort_values(by='姓名')
                new_file_path = os.path.join(folder_path, 'new_' + file_name)
                column_values.to_excel(new_file_path, index=False, engine='openpyxl')
                print(f"已完成: {file_name}")
            except Exception as e:
                print(f"An error occurred with {file_name}: {e}")
        else:
            print(f"跳过非Excel文件: {file_name}")

def select_folder():
    folder_path = filedialog.askdirectory(title="选择文件夹")
    if folder_path:
        read_and_sort_excel_folder(folder_path)
    else:
        print("请选择一个文件夹")

def create_close_button(frame):
    close_button = Button(frame, text="关闭", command=root.quit)
    close_button.pack(side=tk.RIGHT)

def create_title_frame():
    title_frame = Frame(root, bg="blue", width=200, height=50)
    Label(title_frame, text="Excel批量处理程序", bg="blue", fg="white").pack(side=tk.LEFT)
    create_close_button(title_frame)
    title_frame.pack(pady=10)

# 创建主窗口
root = tk.Tk()
root.title("Excel 解析")
root.geometry("400x300")  # 设置窗口大小
root.configure(background='darkblue')  # 设置背景色

# 添加文字说明
label = tk.Label(root, text="1.选择你放文件的文件夹即可\n2.程序自动处理并自动保存\n\n例子:文件A放在文件夹B\n程序处理之后的新文件\n将自动保存在文件夹B中", bg="darkblue", fg="white", font=("Arial", 16))
label.pack(pady=10)  # 垂直方向上添加一些间距

# 在标签的右下角添加作者信息
author_label = tk.Label(root, text="作者:sy", bg="darkblue", fg="white", font=("Arial", 12))
author_label.place(x=350, y=270, anchor="se")  # 将作者标签放置在标签的右下角

# 添加一个按钮,点击时执行select_folder函数
button = tk.Button(root, text="选择文件夹", command=select_folder)
button.pack()

# 运行主循环,等待事件处理
root.mainloop()

【python】name ‘pd‘ / ‘np‘ is not defined 报错解决办法

Python一键提取PDF中的表格到Excel

import pdfplumber
from openpyxl import Workbook
wb = Workbook()  # 创建文件对象
ws = wb.active  # 获取第一个sheet
myfile = 'daima.pdf'  # 把文件名改成自己的实际文件名即可
path = myfile
pdf = pdfplumber.open(path)
print('开始读取数据')
print(pdf.pages[0].extract_tables()[0][0])
ws.append(pdf.pages[0].extract_tables()[0][0])
for page in pdf.pages:
    # 获取当前页面的全部文本信息,包括表格中的文字
    # print(page.extract_text())
    for table in page.extract_tables():
        # print(table)
        for row in table:
            if "序号" not in row:
                # print(type(row))
                rowlist = str(row).replace("[", "",).replace("]", "").replace(
                    "'", "").replace("\\n", "").split(",")
                print(rowlist)
                ws.append(rowlist)
        #print('---------- 分割线 ----------')
pdf.close()
# 保存Excel表
wb.save(myfile+'.xlsx')
print('\n')
print('写入excel成功')

Python open和with open用法和区别

PIL image用法

安装image模块

pip3 install Pillow

忽略此处安装qrcode-terminal模块

pip install qrcode-terminal

复制、缩放、压缩图片

openpyxl库,遍历读取有密码的文档

import openpyxl
import msoffcrypto
#读取
# rb = openpyxl.load_workbook('./123.xlsx')

#遍历读取
# rb = openpyxl.load_workbook('./ExportOrderList12224592231.xlsx')
# rba = rb.active

#读数加密并遍历文件存在则覆盖 不存在就创建新的文件
encrypted = open("./ExportOrderList12224592231.xlsx", "rb")
file = msoffcrypto.OfficeFile(encrypted)
file.load_key(password="spF6Vz29")
with open("./000000.xlsx", "wb") as f:
    file.decrypt(f)
encrypted.close()

#读取有密码的文档
# for aaa in rb.worksheets[0].values:
    # print(aaa)

#激活当前工作表
# rba = rb.active
# rba['A1'] = "sydomain"
# rb.save('./sy.xlsx')

python命令参数大全

--verboae   详细说明


<< < 1 2 3 4 5 6 > >>

Powered By sydomain

Copyright Your WebSite.Some Rights Reserved.