当前位置: 首页 > news >正文

做视频类型的网站2023年企业所得税税收优惠政策

做视频类型的网站,2023年企业所得税税收优惠政策,wordpress wp_get_post_tags,如何建设一个小型网站接上两篇gpt-4o考场安排-CSDN博客#xff0c;考场分层次安排#xff0c;最终exe版-CSDN博客 当然你也可以只看这一篇。 今天又添加了以下功能#xff0c;程序见后。 1、自动分页#xff0c;每个考场打印一页 2、添加了打印试场单页眉 3、添加了页脚 第X页#xff0c;…        接上两篇gpt-4o考场安排-CSDN博客考场分层次安排最终exe版-CSDN博客 当然你也可以只看这一篇。 今天又添加了以下功能程序见后。 1、自动分页每个考场打印一页 2、添加了打印试场单页眉 3、添加了页脚 第X页其X页 打印时间 表结构 程序运行界面 测试分配考场环境共15个班分为两个层次由字段“层次”指定a, b。a层次9个考场b层次15个从b层开始编号a层次考场号从16开编。 预览结果b层次 层次a预览结果 完整程序 import sysimport pandas as pdimport randomimport openpyxlfrom openpyxl.worksheet.pagebreak import Breakfrom openpyxl.styles import Font, Alignment, PatternFill, Border, Sidefrom openpyxl.worksheet.page import PageMarginsfrom datetime import datetimefrom PyQt5.QtWidgets import (QApplication, QLabel, QLineEdit, QPushButton, QFileDialog,QVBoxLayout, QWidget, QMessageBox)from PyQt5.QtGui import QFont as QPyQtFontdef load_data(filename):return pd.read_excel(filename)def save_data(df, filename, exam_name):df.to_excel(filename, indexFalse)format_excel(filename, df, exam_name)def assign_seats(df, total_halls, start_hall1):grouped df.groupby(班级)groups [group.sample(frac1).reset_index(dropTrue) for _, group in grouped]groups.sort(keylambda x: len(x), reverseTrue)iterators [iter(group.iterrows()) for group in groups]arranged_data []hall_number start_hallseat_number 1total_students len(df)students_per_hall total_students // total_hallsextra_students total_students % total_hallswhile iterators:random.shuffle(iterators)for it in iterators[:]:try:_, student next(it)student_data student.to_dict()student_data[考场] hall_numberstudent_data[考号] f{seat_number:02d}arranged_data.append(student_data)seat_number 1if seat_number students_per_hall (1 if hall_number - start_hall 1 extra_students else 0):hall_number 1seat_number 1if hall_number start_hall total_halls:hall_number start_hallexcept StopIteration:iterators.remove(it)return arranged_datadef check_and_adjust_seating(arranged_data):def has_adjacent_same_class(data):for i in range(len(data) - 1):if data[i][班级] data[i 1][班级]:return ireturn -1def find_valid_swap(index, data):current_class data[index][班级]for j in range(len(data)):if j ! index and data[j][班级] ! current_class:if (j 0 or data[j - 1][班级] ! current_class) and (j len(data) - 1 or data[j 1][班级] ! current_class):return jreturn -1swap_operations []while True:index has_adjacent_same_class(arranged_data)if index -1:breakswap_index find_valid_swap(index 1, arranged_data)if swap_index -1:raise ValueError(Cannot find a valid swap to adjust the seating arrangement.)swap_operations.append((index 1, swap_index))arranged_data[index 1], arranged_data[swap_index] arranged_data[swap_index], arranged_data[index 1]return arranged_data, swap_operationsdef reassign_seats(arranged_data, total_halls, start_hall1):hall_number start_hallseat_number 1total_students len(arranged_data)students_per_hall total_students // total_hallsextra_students total_students % total_hallsfor i, student in enumerate(arranged_data):student[考场] hall_numberstudent[考号] f{seat_number:02d}seat_number 1if seat_number students_per_hall (1 if hall_number - start_hall 1 extra_students else 0):hall_number 1seat_number 1if hall_number start_hall total_halls:hall_number start_hallreturn arranged_datadef format_excel(filename, df, exam_name):if 层次 in df.columns:df df.drop(columns[层次])wb openpyxl.Workbook()ws wb.activews.title 考场安排结果# 将标题从第一行开始写入for col_num, column_title in enumerate(df.columns, 1):cell ws.cell(row1, columncol_num, valuecolumn_title)cell.font Font(boldTrue, colorFFFFFF, size16)cell.fill PatternFill(start_color4F81BD, end_color4F81BD, fill_typesolid)cell.alignment Alignment(horizontalcenter, verticalcenter)for row_num, row_data in enumerate(df.itertuples(indexFalse, nameNone), 2):for col_num, cell_value in enumerate(row_data, 1):ws.cell(rowrow_num, columncol_num, valuecell_value)for col in ws.columns:max_length 0column col[0].column_letter# Check if the column header is 考号if ws.cell(row1, columncol[0].col_idx).value 考号:adjusted_width 20 # 设置考号列的宽度为20else:for cell in col:if cell.value is not None:max_length max(max_length, len(str(cell.value)))adjusted_width max_length 10ws.column_dimensions[column].width adjusted_width# 调整页面边距ws.page_margins PageMargins(left1.5, right0.75, top1.2, bottom0.5)ws.print_title_rows 1:1 # 标题行在第一行开始ws.page_setup.orientation portraitws.page_setup.paperSize ws.PAPERSIZE_A4ws.page_setup.fitToPage Truews.page_setup.fitToWidth 1ws.page_setup.fitToHeight Falsews.page_setup.horizontalCentered Truews.page_setup.verticalCentered Truepage_height_in_inches 11.69 - ws.page_margins.top - ws.page_margins.bottompage_height_in_points page_height_in_inches * 72header_height_in_points 50available_row_height_in_points page_height_in_points - header_height_in_pointshall_groups df.groupby(考场)previous_max_row 1 # 前一个最大行号调整为1以考虑空行thin_border Border(leftSide(stylethin), rightSide(stylethin), topSide(stylethin), bottomSide(stylethin))for hall_number, (hall_id, hall_df) in enumerate(hall_groups):row_count len(hall_df) 1max_row hall_df.index[-1] 2 # 从第二行开始每个考场的数据row_height available_row_height_in_points / row_countrow_height max(row_height, 15)for row in range(previous_max_row, max_row 1):ws.row_dimensions[row].height row_heightfor cell in ws[row]:cell.border thin_bordercell.font Font(size15)cell.alignment Alignment(horizontalcenter, verticalcenter)if max_row ws.max_row:ws.row_breaks.append(Break(max_row))previous_max_row max_row 1# 添加页眉和页脚并使用制表符来向左移动页眉ws.oddHeader.center.text f\微软雅黑,Bold\20\t{exam_name} # 添加制表符以向左移动ws.oddFooter.center.text 第 P 页共 N 页ws.oddFooter.right.text fD Twb.save(filename)def dataframe_to_rows(df, indexTrue, headerTrue):if header:rows [list(df.columns)]else:rows [[]]for row in df.itertuples(indexindex, nameNone):rows.append(list(row)[1:])return rowsdef run_allocation(input_filename, a_total_halls, b_total_halls, start_level, exam_name):df load_data(input_filename)if start_level b:other_level afirst_total_halls b_total_hallssecond_total_halls a_total_hallselse:other_level bfirst_total_halls a_total_hallssecond_total_halls b_total_hallsfirst_level_students df[df[层次] start_level]arranged_first_students assign_seats(first_level_students, first_total_halls, start_hall1)adjusted_first_students, _ check_and_adjust_seating(arranged_first_students)final_first_students reassign_seats(adjusted_first_students, first_total_halls, start_hall1)second_level_students df[df[层次] other_level]arranged_second_students assign_seats(second_level_students, second_total_halls, start_hallfirst_total_halls 1)adjusted_second_students, _ check_and_adjust_seating(arranged_second_students)final_second_students reassign_seats(adjusted_second_students, second_total_halls,start_hallfirst_total_halls 1)combined_students final_first_students final_second_studentsarranged_df pd.DataFrame(combined_students)current_time datetime.now().strftime(%Y%m%d_%H%M%S)output_filename f考场安排结果_{current_time}.xlsxsave_data(arranged_df, output_filename, exam_name)return output_filenameclass ExamArrangementApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):layout QVBoxLayout()font QPyQtFont(Arial, 14)self.file_label QLabel(选择文件:)self.file_label.setFont(font)layout.addWidget(self.file_label)self.file_btn QPushButton(选择文件)self.file_btn.setFont(font)self.file_btn.clicked.connect(self.select_file)layout.addWidget(self.file_btn)self.exam_name_label QLabel(考试名称:)self.exam_name_label.setFont(font)layout.addWidget(self.exam_name_label)self.exam_name_input QLineEdit()self.exam_name_input.setFont(font)layout.addWidget(self.exam_name_input)self.a_halls_label QLabel(A层次考场数:)self.a_halls_label.setFont(font)layout.addWidget(self.a_halls_label)self.a_halls_input QLineEdit()self.a_halls_input.setFont(font)layout.addWidget(self.a_halls_input)self.b_halls_label QLabel(B层次考场数:)self.b_halls_label.setFont(font)layout.addWidget(self.b_halls_label)self.b_halls_input QLineEdit()self.b_halls_input.setFont(font)layout.addWidget(self.b_halls_input)self.start_level_label QLabel(首先开始编号的层次 (a/b):)self.start_level_label.setFont(font)layout.addWidget(self.start_level_label)self.start_level_input QLineEdit()self.start_level_input.setFont(font)layout.addWidget(self.start_level_input)self.run_btn QPushButton(运行)self.run_btn.setFont(font)self.run_btn.clicked.connect(self.run)layout.addWidget(self.run_btn)self.setLayout(layout)self.setWindowTitle(考场安排工具,By Bobo googaobogmail.com)self.resize(900, 630)self.center()def select_file(self):options QFileDialog.Options()options | QFileDialog.DontUseNativeDialogfile_name, _ QFileDialog.getOpenFileName(self, 选择Excel文件, , Excel Files (*.xlsx);;All Files (*),optionsoptions)if file_name:self.file_label.setText(f文件: {file_name})self.input_filename file_namedef run(self):try:a_total_halls int(self.a_halls_input.text())b_total_halls int(self.b_halls_input.text())start_level self.start_level_input.text()exam_name self.exam_name_input.text()output_filename run_allocation(self.input_filename, a_total_halls, b_total_halls, start_level, exam_name)QMessageBox.information(self, 成功, f已成功生成文件{output_filename}, QMessageBox.Ok)except Exception as e:QMessageBox.critical(self, 错误, str(e), QMessageBox.Ok)def center(self):qr self.frameGeometry()cp self.screen().availableGeometry().center()qr.moveCenter(cp)self.move(qr.topLeft())if __name__ __main__:app QApplication(sys.argv)ex ExamArrangementApp()ex.show()sys.exit(app.exec_()) 程序已打包exe,点赞留言QQ发送程序。程序运行中有问题请评论区留言交流
http://www.zqtcl.cn/news/388967/

相关文章:

  • 便宜购物网站大全网站建设简介联系方式
  • 网站没有后台登陆文件夹公司怎么建立网站吗
  • 营销网站建设流程图网站开发目前主要用什么技术
  • 网站建设与管理维护 李建青大连网站设计费用
  • 网站建设制作心得团队盐都区城乡建设局网站
  • 网页设计公司网站设计结婚网站模版
  • 做文字图网站设计师网站资源
  • 建筑材料采购网站做早餐烧菜有什么网站
  • 单页网站怎么做外链网站js特效
  • 网站模板 黑白中国域名交易平台
  • 网站高端设计少儿编程加盟十大机构
  • 海尔网站建设的目标是什么财务公司业务范围
  • 天津做艺术品的网站2h1g做视频网站
  • 网站建设项目的预算百度推广登陆首页
  • 网站图片展示方式有哪些深圳做网站比较好天涯
  • 专业长春网站建设工作室安徽省工程建设信息网查询信息
  • 计算机网站开发实现总结关键词优化的作用
  • 网站流量统计模板商务网站安全方案设计
  • 做网站最专业的公司用php做的网站用什么数据库
  • 做网站可以不用框架吗网站301做下
  • 萍乡做网站深圳市福田区住房和建设局官网
  • 网站架构需求wordpress过去指定分类文章
  • 房管局备案查询网站功能型网站开发
  • 聊城手机网站建设服务自己开网站做职称论文可以吗
  • 企业网站禁忌手机端网站开发页
  • 深圳外贸商城网站建设wordpress 空搜索
  • 做微信的网站有哪些shop商城系统
  • 网站落地页如何做优化大师免费下载安装
  • 本地计算机做网站服务器做算命网站
  • 广州网站建设公司万齐网络科技做围棋题网站