0x00 安装Pandas和OpenPyXL
pip install pandas
pip install openpyxl
0x01 Encoding
import os
import pandas as pd
import openpyxl
from openpyxl import load_workbook
import csv
def write_dict_to_csv(dict_data, fileName):
df = pd.DataFrame.from_dict(dict_data)
df.to_csv(fileName, index=False)
def writeCSV(dict_data, fileName):
with open(fileName, 'w', newline='') as file:
writer = csv.writer(file)
print("====================================")
msgPoints_dict = {}
msgPoints_num = 51
for key, value in dict_data.items():
print(value)
if isinstance(value, list):
for item in value:
if isinstance(item, str) and item.startswith('EP') and item is not None:
msgPoints_dict[msgPoints_num] = value
msgPoints_num = msgPoints_num + 1
print("msgPoints_dict_size: " + str(len(msgPoints_dict)))
for key, value in msgPoints_dict.items():
print(key, value, end="\n")
if isinstance(value, list) and value and isinstance(value[2], str) and value[2].startswith("EP"):
tmp_list = [str(key)]
tmp_list.extend(value)
writer.writerow(tmp_list)
pass
def main():
print("=== Read Excel ===")
fileName = './doc/data.xlsx'
dict_data = {}
if os.path.exists(fileName):
wb = load_workbook(fileName)
print(wb.active)
shell = wb.active
columns_to_print = ['B', 'F', 'O']
index = 1
for row in shell.iter_rows():
tmp_list = []
for col_idx, cell in enumerate(row, start=1):
column_letter = openpyxl.utils.get_column_letter(col_idx)
if column_letter in columns_to_print:
tmp_list.append(cell.value)
dict_data[index] = tmp_list
index = index + 1
writeCSV(dict_data, "output.csv")
pass
if __name__ == "__main__":
main()

- 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
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91