python使用openpyxl复制工作表(大数据作业1)

题目如下:

创建新项目(老师要求不使用虚拟环境)

下载openpyxl包,导入Workbook和load_workbook

由于要随机生成整数,所以也需要导入random包的randint函数

使用with open打开文件

在genarateTxt中调用randint生成随机数

在changeTxtToEXCEKL中注意文件的后缀更改,最后保存文件

在copyEXCEL中调用copy_worksheet复制工作表,最后记得保存文件

定义main函数整体调用,主方法调用main函数运行程序

from openpyxl import Workbook
from openpyxl import load_workbook
from random import randint

#创建函数用来生成每行随机数
def genarateTxt(txtName):
    # txtName = txtName + ".txt" #在名称后面加上后缀变为文本文档(注意:文件名包括文件后缀名)
    with open(txtName,'w') as fp: #打开原文件
        fp.write("Col1,Col2,Col3" + "\n") #写入第一行
        #生成随机数
        for i in range(0,10): #生成10行数据(range范围:左闭右开)
            c1 = str(randint(1,10)) #第一列生成1-10的随机数
            c2 = str(randint(10,20)) #第二列生成10-20的随机数
            c3 = str(randint(20,30)) #第三列生成20-30的随机数
            row = c1+","+c2+","+c3+"\n" #每一行的数据中间用逗号隔开,并且换行
            fp.write(row) #将生成的数据写入文件
    fp.close() #写入后关闭,释放资源

#创建函数将文本文档变为Excel格式文档
def changeTxtToEXCEL(txtName):
    wb = Workbook() #创建一个excel文件
    ws = wb.worksheets[0] #打开第一个工作表格
    Excel_name = txtName[:-3] + "xlsx" #将原文件的后缀去掉在名称后面加上文件后缀变为excel表格文档
    with open(txtName,"r") as fp: #打开原文本文档
        for line in fp: #逐行读取
            print(line) #读取出来
            line = line.strip().split(",") #去除首尾空格并以逗号为分割提取每列数据
            ws.append(line) #将本行提取出来的数据写入文件中
    wb.save(Excel_name) #保存excel文档,名称为“Twotask.xlsx”

#改进部分
#新建一个工作表,然后将sheet1的数据复制到sheet2中
#新建函数
def copyEXCEL(txtName):
    Excel_name = txtName[:-3] + "xlsx"
    #首先需要打开该工作簿
    wb = load_workbook(Excel_name)
    #将sheet的内容复制
    ws_1 = wb.worksheets[0] #获取工作簿的第一个工作表
    ws_2 = wb.copy_worksheet(ws_1) #调用openpyxl的copy_worksheet()方法进行复制
    #复制完毕
    wb.save(Excel_name) #保存文件

def main():
    fn = "Twotask.txt" #原文件名称
    genarateTxt(fn) #调用函数写入数据
    changeTxtToEXCEL(fn) #调用函数将数据保存到表格中
    copyEXCEL(fn) #复制工作表的内容

if __name__ == "__main__": #主方法执行
    main()

知识点:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用openpyxl库来拆分工作。下面是一个简单的示例代码,演示了如何将一个工作中的数据拆分到多个工作中。 ```python from openpyxl import load_workbook from openpyxl.utils.dataframe import dataframe_to_rows from openpyxl import Workbook # 加载工作簿 workbook = load_workbook('example.xlsx') # 获取要拆分的工作 worksheet = workbook['Sheet1'] # 获取工作的数据 data = list(dataframe_to_rows(worksheet)) # 定义每个新工作的行数 rows_per_sheet = 10 # 计算要创建的新工作数量 num_sheets = len(data) // rows_per_sheet + 1 # 创建新的工作簿 new_workbook = Workbook() # 拆分数据到新工作 for i in range(num_sheets): # 创建新工作 new_sheet = new_workbook.create_sheet(title=f'Sheet{i+1}') # 计算要拆分的数据范围 start_row = i * rows_per_sheet end_row = (i + 1) * rows_per_sheet # 将数据写入新工作 for row in data[start_row:end_row]: new_sheet.append(row) # 保存新工作簿 new_workbook.save('split_workbook.xlsx') ``` 在上述代码中,我们首先加载一个现有的工作簿,然后选择要拆分的工作。接下来,我们将工作的数据转换为列形式,并定义每个新工作的行数。然后,我们计算要创建的新工作数量,并创建一个新的工作簿。 在拆分数据时,我们使用一个循环来逐个创建新的工作,并将相应的数据写入每个工作。最后,我们保存新的工作簿。 请注意,上述示例假设你已经安装了openpyxl库,并且你要拆分的工作簿名为`example.xlsx`。你可以根据自己的实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值