code: def write_how_many(self, file):
          
          report = CaseReport(self.case)
  
          # Map component labels to attribute names
          components = [("Bus", "n_buses"), ("Generator", "n_generators"),
              ("Committed Generator", "n_online_generators"),
              ("Load", "n_loads"), ("Fixed Load", "n_fixed_loads"),
              ("Despatchable Load", "n_online_vloads"), ("Shunt", "n_shunts"),
              ("Branch", "n_branches"), ("Transformer", "n_transformers"),
              ("Inter-tie", "n_interties"), ("Area", "n_areas")
          ]
  
          # Column 1 width
          longest = max([len(c[0]) for c in components])
  
          col1_header = "Object"
          col1_width = longest
          col2_header = "Quantity"
          col2_width = len(col2_header)
  
          # Row separator
          sep = "="*col1_width + " " + "="*col2_width + "\n"
  
          # Row headers
          file.write(sep)
  
          file.write(col1_header.center(col1_width))
          file.write(" ")
          file.write("%s\n" % col2_header.center(col2_width))
  
          file.write(sep)
  
          # Rows
          for label, attr in components:
              col2_value = str(getattr(report, attr))
              file.write("%s %s\n" %
                  (label.ljust(col1_width), col2_value.rjust(col2_width)))
          else:
              file.write(sep)
              file.write("\n")
  
          del report
docs: Writes component numbers to a table.