excel2bitwarden.py (986B)
1 import pandas as pd 2 3 4 def convert_to_bitwarden_csv(input_file, output_file): 5 if input_file.endswith(".xlsx"): 6 df = pd.read_excel(input_file) 7 elif input_file.endswith(".md"): 8 df = pd.read_table(input_file, sep="|").iloc[1:] 9 df = df.dropna(axis=1, how="all").map( 10 lambda x: x.strip() if isinstance(x, str) else x 11 ) 12 df.columns = [col.strip() for col in df.columns] 13 14 bw_df = pd.DataFrame() 15 bw_df["folder"] = None 16 bw_df["favorite"] = 0 17 bw_df["type"] = "login" 18 bw_df["name"] = df["サービス名"] 19 bw_df["notes"] = None 20 bw_df["fields"] = None 21 bw_df["login_uri"] = None 22 bw_df["login_username"] = df["アカウント名"] 23 bw_df["login_password"] = df["パスワード"] 24 bw_df["login_totp"] = None 25 26 bw_df.to_csv(output_file, index=False, encoding="utf-8") 27 28 29 if __name__ == "__main__": 30 convert_to_bitwarden_csv(r"password.xlsx", "bitwarden_import.csv")