吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 619|回复: 8
收起左侧

[已解决] python代码,请大家帮忙。

 关闭 [复制链接]
快乐的小驹 发表于 2024-1-13 18:42
本帖最后由 快乐的小驹 于 2024-1-17 09:53 编辑

待处理表格
待处理表格.png

当前实现效果:还只能生成一行。
目前1.png
目前2.png


已知Bug:输入数量低于17就乱了。
111.png
目前3.png

想要的效果

想1.png
想2.png

[Python] 纯文本查看 复制代码
import tkinter as tk
from tkinter import filedialog
import openpyxl
import random

def open_file():
   file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx"), ("All Files", "*.*")])
   file_path_label.config(text=file_path)

def generate_data():
   file_path = file_path_label.cget("text")
   if not file_path:
       return

   wb = openpyxl.load_workbook(file_path)
   sheet = wb.active

   # 从多行文本框获取要生成的1的数量
   num_cells_str = num_cells_entry.get("1.0", "end-1c")
   if not num_cells_str.isdigit():
       return
   num_cells = int(num_cells_str)

   # 计算可以插入的空数据数量
   num_empty = max(0, 31 - num_cells)

   # 遍历第2行,为每个单元格生成一个随机数
   for col in range(1, 32):  # Assuming the data starts from column A and ends at column Z
       # 随机选择一个空数据或1
       if random.randint(0, 1) == 0:
           # 如果空数据数量大于0,则插入空数据
           if num_empty > 0:
               sheet.cell(row=2, column=col, value='')
               num_empty -= 1
           else:
               sheet.cell(row=2, column=col, value=1)
       else:
           sheet.cell(row=2, column=col, value=1)

   wb.save(file_path)

root = tk.Tk()
root.title("Excel Generator")

open_file_button = tk.Button(root, text="打开文件", command=open_file)
open_file_button.pack()

file_path_label = tk.Label(root, text="")
file_path_label.pack()

num_cells_label = tk.Label(root, text="要生成的1的数量:")
num_cells_label.pack()

num_cells_entry = tk.Text(root, height=10, width=20)
num_cells_entry.pack()

generate_button = tk.Button(root, text="生成数据", command=generate_data)
generate_button.pack()

root.mainloop()


代码及表格文件:https://veong.lanzouo.com/i3EDE1l03qyb

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yibrother 发表于 2024-1-13 19:38
pandas填充数据  很简单
dtsuifeng 发表于 2024-1-13 19:45
zysyijia 发表于 2024-1-13 19:49
yibrother 发表于 2024-1-13 19:38
pandas填充数据  很简单

这个建议非常可行!用pandas实现,然后存为excel即可。需要修改则pandas读取excel,利用pandas的函数来实现,相当方便,再保存即可!
camgal 发表于 2024-1-13 20:04
读取文本那里需要split一下

import tkinter as tk
from tkinter import filedialog
import openpyxl
import random

def open_file():
   file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx"), ("All Files", "*.*")])
   file_path_label.config(text=file_path)

def generate_data():
   file_path = file_path_label.cget("text")
   if not file_path:
       return

   wb = openpyxl.load_workbook(file_path)
   sheet = wb.active

   # 从多行文本框获取要生成的1的数量
   num_cells_strs = num_cells_entry.get("1.0", "end-1c").split('\n')


   for i in range(0,len(num_cells_strs)):
       num_cells_str=num_cells_strs
       irow=2+i
       if not num_cells_str.isdigit():
           return
       num_cells = int(num_cells_str)


       # 计算可以插入的空数据数量
       num_empty = max(0, 31 - num_cells)

       # 遍历第2行,为每个单元格生成一个随机数
       for col in range(1, 32):  # Assuming the data starts from column A and ends at column Z
           # 随机选择一个空数据或1
           if random.randint(0, 1) == 0:
               # 如果空数据数量大于0,则插入空数据
               if num_empty > 0:
                   sheet.cell(row=irow, column=col, value='')
                   num_empty -= 1
               else:
                   sheet.cell(row=irow, column=col, value=1)
           else:
               sheet.cell(row=irow, column=col, value=1)

   wb.save(file_path)

root = tk.Tk()
root.title("Excel Generator")

open_file_button = tk.Button(root, text="打开文件", command=open_file)
open_file_button.pack()

file_path_label = tk.Label(root, text="")
file_path_label.pack()

num_cells_label = tk.Label(root, text="要生成的1的数量:")
num_cells_label.pack()

num_cells_entry = tk.Text(root, height=10, width=20)
num_cells_entry.pack()

generate_button = tk.Button(root, text="生成数据", command=generate_data)
generate_button.pack()

root.mainloop()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
快乐的小驹 + 1 + 1 大神,代码还是有问题。帮我改改。

查看全部评分

hxcnull6 发表于 2024-1-13 20:47
camgal 发表于 2024-1-13 20:04
读取文本那里需要split一下

import tkinter as tk

这个感觉应该是最贴合楼主的回答,但是可以导入库的话 用pandas 要简单些
a1145006244 发表于 2024-1-14 12:44
我也想要下载一个,可以啊
losingstars 发表于 2024-1-17 18:33
import tkinter as tk
from tkinter import filedialog, messagebox
import openpyxl
import random
def open_file():
    file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx"), ("All Files", "*.*")])
    file_path_label.config(text=file_path)
def generate_data():
    file_path = file_path_label.cget("text")
    if not file_path:
        return

    wb = openpyxl.load_workbook(file_path)
    sheet = wb.active

    # 从多行文本框获取要生成的1的数量
    num_cells_strs = num_cells_entry.get("1.0", "end-1c").split('\n')

    for i in range(0, len(num_cells_strs)):
        num_cells_str = num_cells_strs
        row = 2 + i
        if not num_cells_str.isdigit():
            tk.messagebox.showinfo('提示', '因为第{}行不是数字,所以表中第{}行没有更新'.format((row-1), row))
            continue
        num_cells = int(num_cells_str)


    # 遍历每行,为每个单元格生成一个随机数
        for col in range(1, 32):  
            sheet.cell(row=row, column=col, value='')
        one_indices = random.sample(range(1, 32), num_cells)    # 随机选择一个空数据或1

        for col in one_indices:
            sheet.cell(row=row, column=col, value=1)

        wb.save(file_path)

root = tk.Tk()
root.title("Excel Generator")

open_file_button = tk.Button(root, text="打开文件", command=open_file)
open_file_button.pack()

file_path_label = tk.Label(root, text="")
file_path_label.pack()

num_cells_label = tk.Label(root, text="要生成的1的数量:")
num_cells_label.pack()

num_cells_entry = tk.Text(root, height=10, width=20)
num_cells_entry.pack()

generate_button = tk.Button(root, text="生成数据", command=generate_data)
generate_button.pack()

root.mainloop()
losingstars 发表于 2024-1-19 00:15
losingstars 发表于 2024-1-17 18:33
import tkinter as tk
from tkinter import filedialog, messagebox
import openpyxl

根据楼上的代码改了改。感觉这程序没啥用呀。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 20:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表