使用电子表格按照一列的不同值输出不同的文件, 采用phony
时间: 2024-01-12 10:02:32 浏览: 82
task和条件判断语句来实现。
首先,需要安装Python的pandas和xlrd库,用于读取和处理Excel文件。
然后,可以按照如下代码实现:
```makefile
.PHONY: all
all: output1.csv output2.csv output3.csv
output1.csv: input.xlsx
python process.py input.xlsx output1.csv A 1
output2.csv: input.xlsx
python process.py input.xlsx output2.csv A 2
output3.csv: input.xlsx
python process.py input.xlsx output3.csv A 3
```
其中,`.PHONY`声明了一个虚拟任务`all`,该任务依赖于三个输出文件`output1.csv`、`output2.csv`和`output3.csv`。
每个输出文件对应一个任务,如`output1.csv`的任务定义如下:
```makefile
output1.csv: input.xlsx
python process.py input.xlsx output1.csv A 1
```
该任务依赖于`input.xlsx`文件,执行`python process.py input.xlsx output1.csv A 1`命令来生成`output1.csv`文件。
`process.py`是一个Python脚本,用于读取Excel文件,并按照指定的列和值来输出不同的文件。具体代码如下:
```python
import sys
import pandas as pd
input_file = sys.argv[1]
output_file = sys.argv[2]
col_name = sys.argv[3]
col_value = sys.argv[4]
df = pd.read_excel(input_file)
df = df[df[col_name] == col_value]
df.to_csv(output_file, index=False)
```
该脚本使用了pandas库来读取Excel文件,并根据指定的列和值来筛选出需要输出的数据。最后,将数据保存为CSV格式的输出文件。
阅读全文