カカロット 发表于 2020-8-8 09:14:24

求各位大佬帮助EXCEL拆分列工具

想做个小工具,把EXCEL的某一列产分成多个列,比如一列的值为 x师y旅z团,拆分成三列, x师、y旅、z团

_2_ 发表于 2020-8-8 09:59:46

你的意思是?
可以再详细一点吗?

suchocolate 发表于 2020-8-8 10:09:21

本帖最后由 suchocolate 于 2020-8-8 11:06 编辑

from openpyxl import load_workbook
import re


wb = load_workbook('test.xlsx')
# print(wb.sheetnames)
ws = wb['Sheet1']

for n in range(1, ws.max_row + 1):
    sn = str(n)
    content = ws['a' + sn].value
    division = re.findall(r'(.*?师)', content)
    # print(division)
    brigate = re.findall(r'师(.*?旅)', content)
    # print(brigate)
    regiment = re.findall(r'旅(.*?团)', content)
    # print(regiment)
    ws['a' + sn] = division
    ws['b' + sn] = brigate
    ws['c' + sn] = regiment

wb.save('test.xlsx')
   

カカロット 发表于 2020-8-8 23:20:22

suchocolate 发表于 2020-8-8 10:09


多谢大佬{:5_101:}

suchocolate 发表于 2020-8-9 10:11:30

カカロット 发表于 2020-8-8 23:20
多谢大佬

验证可用的话给个最佳啊,亲。

カカロット 发表于 2020-8-11 22:55:06

suchocolate 发表于 2020-8-9 10:11
验证可用的话给个最佳啊,亲。

大佬 我想把它变成.exe那样的支持导入导出形式的工具,不知道能实现嘛?就是导入没拆分的表,选择这列单元格拆分后,导出新excel?

suchocolate 发表于 2020-8-12 08:25:59

カカロット 发表于 2020-8-11 22:55
大佬 我想把它变成.exe那样的支持导入导出形式的工具,不知道能实现嘛?就是导入没拆分的表,选择这列单 ...

可以,加入os相关操作,最后用pyinstaller打包成exe,你搜搜论坛里的教程吧,很多的。

カカロット 发表于 2020-8-15 19:33:19

suchocolate 发表于 2020-8-12 08:25
可以,加入os相关操作,最后用pyinstaller打包成exe,你搜搜论坛里的教程吧,很多的。

好嘞多谢大佬指点

カカロット 发表于 2020-8-26 18:47:26

suchocolate 发表于 2020-8-8 10:09


大佬,ws['a' + sn]我想问下这个是什么意思呀?还有content)

suchocolate 发表于 2020-8-26 20:00:12

カカロット 发表于 2020-8-26 18:47
大佬,ws['a' + sn]我想问下这个是什么意思呀?还有content)

n是当前操作的行号,sn=str(n)就是转成字符,访问单元格得是字符形式,如ws['a1']。
content就要被拆分的单元格的数据。

カカロット 发表于 2020-8-27 18:48:55

suchocolate 发表于 2020-8-26 20:00
n是当前操作的行号,sn=str(n)就是转成字符,访问单元格得是字符形式,如ws['a1']。
content就要被拆分 ...

好嘞多谢大佬,content后面的【0】是代表content列表中第一个数据吗?

suchocolate 发表于 2020-8-27 20:22:59

カカロット 发表于 2020-8-27 18:48
好嘞多谢大佬,content后面的【0】是代表content列表中第一个数据吗?

カカロット 发表于 2020-8-27 23:15:38

本帖最后由 カカロット 于 2020-8-27 23:20 编辑

suchocolate 发表于 2020-8-27 20:22


可是为什么我不加这个【0】会报错呢。。。 写上【1】就说列表索引超出范围,我现在晕了这个是指什么呢,辛苦大佬了

suchocolate 发表于 2020-8-28 09:26:55

カカロット 发表于 2020-8-27 23:15
可是为什么我不加这个【0】会报错呢。。。 写上【1】就说列表索引超出范围,我现在晕了这个是指什么 ...

list报错说明你的列表是空的,没有数据。
你把你的全部代码发上来,我帮你看看。
页: [1]
查看完整版本: 求各位大佬帮助EXCEL拆分列工具