excel总表转为多个sheet页

最近经常遇到一张超大的excel总表,看着不方便,就需要转为多个sheet页。本来想用VBA直接写宏的,结果发现网上的VBA教程都太不详细,就直接用python简单搞了,留着做个小工具。

#!/usr/bin/env python
# coding: utf-8

import pandas as pd
# 读文件
df = pd.read_excel("./###.xlsx",header = None)
# 删除全部为空的行
df = df.dropna(axis=0, how='all', thresh=None, subset=None, inplace=False)

###################################
# 修改参数配置
title = df.iloc[0]
startRow = 1
endRow = df.shape[0]
flagString = '小计'
###################################

# 写入excel中的sheet页
sheetNum = 0
writer=pd.ExcelWriter('多sheet页版本.xlsx')
for row in range(1,endRow):
    item = df.iloc[row,0]
    if item.strip() == flagString:
        data = df.iloc[startRow:row + 1,:]
        print(data.head())
        data.to_excel(writer, df.iloc[startRow,0],index=False,header=title)
        startRow = row +1
        sheetNum += 1
writer.save()
print("over, sheetNum:", sheetNum)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的pandas库来实现多sheetexcel转为csvutf8格式,并导入到MySQL中。 首先,需要安装pandas库和MySQL Connector库: ```python !pip install pandas !pip install mysql-connector-python ``` 然后,可以使用以下代码实现excel转csvutf8格式,并将其导入到MySQL中: ```python import pandas as pd import mysql.connector # 连接MySQL数据库 cnx = mysql.connector.connect(host='localhost', user='root', password='password', database='db_name') # 读取excel文件的所有sheet xl = pd.read_excel('file.xlsx', sheet_name=None) # 遍历sheet for sheet_name, sheet_data in xl.items(): # 将数据转为csvutf8格式 csv_data = sheet_data.to_csv(None, encoding='utf-8', index=False) # 使用MySQL Connector插入数据到MySQL cursor = cnx.cursor() # 如果MySQL表不存在,可以先创建表 create_table_sql = f"CREATE TABLE IF NOT EXISTS {sheet_name} ({','.join([f'{col} VARCHAR(255)' for col in sheet_data.columns])})" cursor.execute(create_table_sql) # 使用LOAD DATA INFILE语句导入csv数据到MySQL中 load_data_sql = f"LOAD DATA LOCAL INFILE 'path/to/{sheet_name}.csv' INTO TABLE {sheet_name} FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n'" cursor.execute(load_data_sql) cnx.commit() # 关闭数据库连接 cnx.close() ``` 其中,`host`、`user`、`password`和`database`分别为MySQL的主机地址、用户名、密码和数据库名,需要修改成自己的数据库信息。`file.xlsx`为需要转换的excel文件名,`path/to/`为需要导入到MySQL的CSV文件路径。 该代码将excel文件中的每个sheet转为csvutf8格式,并插入到MySQL中。如果MySQL表不存在,则会自动创建表。注意,需要在MySQL中开启`LOCAL INFILE`选项,才能使用`LOAD DATA INFILE`语句导入数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值