import openpyxl

# Read existing foods from Excel file
existing_foods = set()
try:
    existing_workbook = openpyxl.load_workbook('formatted_data.xlsx')
    existing_sheet = existing_workbook.active
    for row in existing_sheet.iter_rows(min_row=2, max_col=1, max_row=existing_sheet.max_row):
        existing_foods.add(row[0].value)
except FileNotFoundError:
    # If the file does not exist, there are no existing foods
    pass

# Read data from text file
with open('food_data.txt', 'r') as file:
    data = file.readlines()

# Process the data
formatted_data = []
for line in data:
    # Split each line by colon ':'
    parts = line.strip().split(':')
    # Check if there are two parts (food and ingredients)
    if len(parts) == 2:
        food = parts[0].strip()
        ingredients = parts[1].strip()
        # Check if the food is already in the existing foods set
        if food not in existing_foods:
            # If not, add the food to the set and to the formatted data list
            existing_foods.add(food)
            formatted_data.append((food, ingredients))
    else:
        # If only one part is present, add an empty string for ingredients
        food = parts[0].strip()
        if food not in existing_foods:
            existing_foods.add(food)
            formatted_data.append((food, ''))

# Write data to Excel file
workbook = openpyxl.Workbook()
sheet = workbook.active

# Add headers
sheet.cell(row=1, column=1).value = 'Food'
sheet.cell(row=1, column=2).value = 'Ingredients'

# Add data
for idx, entry in enumerate(formatted_data, start=2):
    # Write food and ingredients to respective columns
    sheet.cell(row=idx, column=1).value = entry[0]
    sheet.cell(row=idx, column=2).value = entry[1]

# Save Excel file
workbook.save('formatted_data.xlsx')
