the default way for exporting BOM data from eescheme is using and modifying the python scripts which come together with KiCad.
However, I recently had the same issue while preparing a little bit more custom data for my EMS for multiple population variants of a board. A little bit kind of accidently I found out, that you can also copy the whole BOM table by marking it and pressing STRG+C in eescheme and then paste it for example to excel.
The problem with this workflow when using any version up to and including 5.1.x is the custom fields that you added to your components in the schematic don’t get picked up by PCBNew. No matter how you try to export a BOM from PCBNew, you won’t get the extra fields because PCBNew doesn’t know about them. This is changing for the development nightly releases that will eventually be v6, but that is in the future and not now. There are several BOM exporter scripts in EESchema, you can try them out (watch out, from what I’ve read here, some generate csv files w/o extensions). Or, you can open the Edit Symbol Fields... from the Tools menu in EESchema. Here is a screenshot from a stupidly simple board that I use as a scratch-pad:
In this window, using the check-boxes on the left, you can show or hide fields and change what fields are used for grouping. Then CTRL-a to select all and CTRL-c to copy the table to the clipboard (modify the bucky bits for your OS). Then paste into your favorite spread sheet for further processing (or paste into an empty .csv file using your favorite text editor).
BTW, you never mention what version you are using, so I’m assuming that you are using v5.1.x (currently the latest is 5.1.9 but you may not have updated to that yet, though I would advise doing so to be able to take advantage of all the cumulative bug fixes since 5.1.0 came out). I don’t recall if this trick works in 5.0.x, and I’m positive it won’t in versions that predate 5.0.0.
I really dont understand how suchba nice piece of software can get so messy about exporting a plain table with text. I mean really? A pile of python giberish to choose from, plugins of all sorts, problems getting tje fields from eeschema to newpcb?
I just copied from eeschema, cmd+c and am now doing fine with a simple spreadsheat on numbers.