python 文本转成 excel

环境:
python:2.7

安装 pip

在windows下安装pip: 在C:\python27\scirpts下运行easy_install pip进行安装。

如果不知道是哪个路径,去设置变量那里看看就知道

安装 pandas 和 openpyxl

可以使用国内镜像安装

1
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple

同时需要设置环境参数,

1
2
3
.../python  这个是 python 的环境参数
// 需要加多一个
../python/Script

排序

可以使用 Pandas 库的 sort_values() 方法对 DataFrame 进行排序。

例如,如果要按 project 列进行排序,可以这样写:

Copy code
df = df.sort_values(‘project’)
这将按 project 列的值对 DataFrame 进行排序。

如果要按多列进行排序,可以使用 by 参数指定排序列,例如:

Copy code
df = df.sort_values(by=[‘project’, ‘date’])
这将按 project 列和 date 列的值对 DataFrame 进行排序。

如果要按降序排序,可以使用 ascending 参数设置为 False,例如:

Copy code
df = df.sort_values(by=’project’, ascending=False)
这将按 project 列的值从大到小对 DataFrame 进行排序。

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -*- coding: utf-8 -*-  # 必须加上这个,否则就识别不了中文
# 引入一些库,需要使用 pip 安装
import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl import Workbook

# 这个是 text,也就是我的工作日报的格式,用这个来解析成 excel
text = """
# 日期
项目名称
- [x] 工作项1
- [x] 工作项2
"""

# 将工作日报文本转换为 DataFrame
df = pd.DataFrame(columns=['date', 'project', 'task'])

lines = text.strip().split('\n')
project_str = ''
for line in lines:
if line.startswith('#'):
date = '2022-' + line[1:].strip()
project_str = ''
elif line.startswith('-'):
task = line.replace('- [x] ', '')
df = df.append({'date': date, 'project': project_str, 'task': task}, ignore_index=True)
else:
project_str = line
df = df.sort_values(by='project', ascending=True)
# 将 DataFrame 写入 Excel 文件
wb = Workbook()
ws = wb.active

for r in dataframe_to_rows(df, index=False, header=True):
ws.append(r)

wb.save("work_log.xlsx")