diff --git a/BoM/Axio4_Nexio_Conduent Subsystem Cost Analysis.xlsx b/BoM/Axio4_Nexio_Conduent Subsystem Cost Analysis.xlsx index 7eaff75..7a7930c 100644 Binary files a/BoM/Axio4_Nexio_Conduent Subsystem Cost Analysis.xlsx and b/BoM/Axio4_Nexio_Conduent Subsystem Cost Analysis.xlsx differ diff --git a/OCTO/octo_1.xlsx b/OCTO/octo_1.xlsx deleted file mode 100644 index d19cc31..0000000 Binary files a/OCTO/octo_1.xlsx and /dev/null differ diff --git a/OCTO/octo_2.xlsx b/OCTO/octo_2.xlsx deleted file mode 100644 index e7c8b2c..0000000 Binary files a/OCTO/octo_2.xlsx and /dev/null differ diff --git a/OCTO/octo_3.xlsx b/OCTO/octo_3.xlsx deleted file mode 100644 index 9c6da26..0000000 Binary files a/OCTO/octo_3.xlsx and /dev/null differ diff --git a/OUTPUT/bom_parts_1_of_3.xlsx b/OUTPUT/bom_parts_1_of_3.xlsx deleted file mode 100644 index 77fc325..0000000 Binary files a/OUTPUT/bom_parts_1_of_3.xlsx and /dev/null differ diff --git a/OUTPUT/bom_parts_2_of_3.xlsx b/OUTPUT/bom_parts_2_of_3.xlsx deleted file mode 100644 index 42f4a9c..0000000 Binary files a/OUTPUT/bom_parts_2_of_3.xlsx and /dev/null differ diff --git a/OUTPUT/bom_parts_3_of_3.xlsx b/OUTPUT/bom_parts_3_of_3.xlsx deleted file mode 100644 index fbb8f47..0000000 Binary files a/OUTPUT/bom_parts_3_of_3.xlsx and /dev/null differ diff --git a/bom_extract.py b/bom_extract.py index 2f5d64e..820adfa 100644 --- a/bom_extract.py +++ b/bom_extract.py @@ -161,6 +161,23 @@ def write_chunks(parts: list[tuple[str, str]], output_dir: Path) -> None: log.info(f"Done – {total} unique parts across {n_files} file(s) in {output_dir}/") +def write_siliconexpert(parts: list[tuple[str, str]], output_dir: Path) -> None: + output_dir.mkdir(exist_ok=True) + + df = pd.DataFrame(parts, columns=["Manufacturer", "MPN"]) + df.sort_values(["Manufacturer", "MPN"], inplace=True, ignore_index=True) + out = output_dir / "siliconexpert.xlsx" + + with pd.ExcelWriter(out, engine="openpyxl") as writer: + df.to_excel(writer, index=False, sheet_name="Parts") + ws = writer.sheets["Parts"] + for col in ws.columns: + width = max(len(str(cell.value or "")) for cell in col) + ws.column_dimensions[col[0].column_letter].width = min(width + 3, 60) + + log.info(f" Written → {out} ({len(df)} parts)") + + if __name__ == "__main__": if not BOM_DIR.exists(): log.error(f"BoM directory '{BOM_DIR}' not found.") @@ -168,3 +185,4 @@ if __name__ == "__main__": parts = extract(BOM_DIR) write_chunks(parts, OUTPUT_DIR) + write_siliconexpert(parts, OUTPUT_DIR)