python代码 excel文件管理系统,每次对同一个excel的内容修改都标注不同的颜色,并将上次变动的内容颜色改为黑色
时间: 2024-03-24 11:38:12 浏览: 16
以下是一个简单的Python代码示例,实现了一个Excel文件管理系统,可以对同一个Excel的内容进行修改并标注不同的颜色,并将上次变动的内容颜色改为黑色。
```python
import openpyxl
from openpyxl.styles import Font, colors
# 定义Excel文件管理类
class ExcelFileManager:
def __init__(self, file_path):
self.file_path = file_path
self.workbook = openpyxl.load_workbook(file_path)
self.sheet_names = self.workbook.sheetnames
self.sheet = None
self.last_edited_cell = None
# 选择工作表
def select_sheet(self, sheet_name):
self.sheet = self.workbook[sheet_name]
# 对单元格进行修改
def edit_cell(self, cell, value):
cell.value = value
if self.last_edited_cell is not None and self.last_edited_cell.value != value:
self.last_edited_cell.font = Font(color=colors.BLACK)
cell.font = Font(color=self.get_next_color())
self.last_edited_cell = cell
# 获取下一个要使用的颜色
def get_next_color(self):
colors_list = [colors.BLUE, colors.RED, colors.GREEN, colors.YELLOW, colors.ORANGE]
if self.last_edited_cell is None:
return colors_list[0]
last_color = self.last_edited_cell.font.color
return colors_list[(colors_list.index(last_color) + 1) % len(colors_list)]
# 保存Excel文件
def save_file(self):
self.workbook.save(self.file_path)
# 测试代码
if __name__ == '__main__':
# 创建Excel文件管理器
excel_manager = ExcelFileManager('example.xlsx')
# 选择工作表
excel_manager.select_sheet('Sheet1')
# 修改单元格内容
excel_manager.edit_cell(excel_manager.sheet['A1'], 'Hello')
excel_manager.edit_cell(excel_manager.sheet['A2'], 'World')
excel_manager.edit_cell(excel_manager.sheet['B1'], 'Python')
excel_manager.edit_cell(excel_manager.sheet['B2'], 'Excel')
# 保存Excel文件
excel_manager.save_file()
```
该代码示例中,我们定义了一个`ExcelFileManager`类,实现了对Excel文件的管理。在类中,我们使用`openpyxl`库加载Excel文件,并提供了选择工作表、对单元格进行修改、获取下一个要使用的颜色和保存Excel文件等方法。
在修改单元格内容时,我们使用了`Font`类设置了不同的颜色,并将上次变动的内容颜色改为黑色。颜色列表为蓝色、红色、绿色、黄色和橙色,每次使用下一个颜色。
在测试代码中,我们创建了一个Excel文件管理器,选择了Sheet1工作表,并对四个单元格进行了修改。最后,我们调用`save_file`方法保存Excel文件。
请注意,该代码示例仅实现了基本的功能,实际应用中可能需要更多的功能和异常处理。