I don't think there is a standard, but that doesn't mean that you can't make one.
I've written my own part searcher for EAGLE and Kicad which loads a bom from EAGLE or the parts list from kicad, produces search URLs for my preferred supplier and accepts SKUs in return.
What I'd do is to specify an xml format to hold the BOM and write a bunch of converters that can produce that format.
My eagle and kicad scripts are here:
https://github.com/dren-dk/HAL900/tree/master/door-ctrl/kicad2elfa
Yup, BOM is a spreadsheet.
At minimum it should contain refdes and internal part number for each component.
If you don't maintain an internal parts database, it should contain refdes and manufacturer / full part number for each component.
If this is for a small build, I put the Digi-Key or Mouser part numbers on there too, so you can order off the BOM.
I like to coalesce identical part numbers so instead of a row for C1 and a row for C2 and a row for C3, I have a row for C1,C2,C3. This also necessitates a "quantity" column. It also makes it harder to look up a given refdes since they are not in order.
The BOM will be used by the guy ordering parts and the guy running the pick and place machine, so add any annotations you want those folks to see.
Oh, and the BOM is useful for costing if you add component prices on there. Again, this is for small runs. Big runs will use more sophisticated accounting.
Best Answer
You can do that by using the Attribute tool and updating each device you are using in your schematic.
With that tool you can create fields according to the information you want to generate to the BOM.
You also can create a script and run it when you need to create the fields for each device. Here is an example:
After doing this you can generate the BOM and have all the columns you want.