From 826277bfa18c2f6036dbe5adf74e5f48763cb664 Mon Sep 17 00:00:00 2001 From: OliE Date: Fri, 23 May 2025 11:06:49 +0200 Subject: [PATCH] Updated Useful import scripts (markdown) --- Useful-import-scripts.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Useful-import-scripts.md b/Useful-import-scripts.md index 3cf1402..c935b11 100644 --- a/Useful-import-scripts.md +++ b/Useful-import-scripts.md @@ -256,4 +256,37 @@ if __name__ == '__main__': 'weight': "{:.2f}".format(weight), 'comment': comment }) +``` + +## Health Coach Excel file --> openScale CSV file + +by sarika-03 see https://github.com/oliexdev/openScale/issues/728 + +```python +import pandas as pd +input_file = "HealthCoach.xlsx" +df = pd.read_excel(input_file) +print("Columns in Excel file:", list(df.columns)) +df.columns = df.columns.str.strip() +df_openscale = pd.DataFrame() +df_openscale['date'] = pd.to_datetime( +df['Date'].astype(str) + ' ' + df['Time'].astype(str), +dayfirst=True, errors='coerce' +).dt.strftime('%Y-%m-%d %H:%M:%S') +df_openscale['weight'] = df.get('Weight (kg)', None) +df_openscale['fat'] = df.get('Body Fat (%)', None) +df_openscale['fat_top'] = df.get('Body Fat (Top %)', None) +df_openscale['fat_bottom'] = df.get('Body Fat (Bottom %)', None) +df_openscale['water'] = df.get('Water (%)', None) +df_openscale['muscle'] = df.get('Muscle (%)', None) +df_openscale['muscle_top'] = df.get('Muscle (Top %)', None) +df_openscale['muscle_bottom'] = df.get('Muscle (Bottom %)', None) +df_openscale['bone'] = df.get('Bone (kg)', None) +df_openscale['bmi'] = df.get('BMI', None) +df_openscale['bmr'] = df.get('BMR (kcal)', None) +df_openscale['amr'] = df.get('AMR (kcal)', None) +df_openscale['activity_level'] = df.get('Activity Level', None) +output_file = "openScale_ready_data.csv" +df_openscale.to_csv(output_file, index=False) +print(f"\n Conversion complete! File saved as: {output_file}") ``` \ No newline at end of file