Flat list
Every row repeats its message name, ID and sender. Filter by ID, pivot by sender, load it into pandas, or compare two exports line by line.
Drop a DBC and get a workbook you can filter, review and hand over: one sheet for signals, one for messages, one for value tables. Nothing is uploaded, and Chinese comments survive.
Drop your DBC file here
or.dbc files up to 150 MiB. The file is read on your computer and never uploaded.
A DBC is a plain text file made for Vector's CANdb++. When you do not have that tool, or the text is too dense to read, a spreadsheet is the quickest way in.
Vector's editor is the reference tool for DBC files. It runs on Windows and usually comes with a Vector tool installation, so a supplier, a test bench or a Mac laptop often has no way to open the file.
Kvaser Database Editor, SavvyCAN and Python's cantools also read DBC files. Each is another install or script, and none of them gives you a plain list to filter and share.
Any editor opens a DBC, but one signal is scattered across the file: its SG_ line, its comment (CM_), its value table (VAL_) and its attributes (BA_) sit in different places. Reading a single signal means searching four times.
The export joins all of that into one row per signal: start bit, factor, unit, receivers, comment and value table side by side, ready to filter, share or paste into a test case.
Up to five sheets with fixed columns, so the file works with filters, pivot tables and pandas.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Message | ID (hex) | Sender | Signal | Start bit | Factor |
| 2 | EngineData | 0x1A0 | ECU | Engine_Speed | 16 | 0.25 |
| 3 | EngineData | 0x1A0 | ECU | Coolant_Temp | 8 | 1 |
| 4 | EngineData | 0x1A0 | ECU | Throttle_Pos | 32 | 0.4 |
| 5 | BrakeStatus | 0x2C4 | ESP | Brake_Pressure | 0 | 0.1 |
| 6 | BrakeStatus | 0x2C4 | ESP | Pedal_Active | 12 | 1 |
One row per signal, with the message it belongs to. This is the sheet most people are after.
One row per message: ID, frame format, DLC, sender, cycle time and how many signals it carries.
One row per value, so a state signal with eight entries becomes eight searchable rows. Global value tables are listed too.
Each ECU with the number of messages it sends and the signals it receives.
Network, node, message and signal attributes that have a value, such as GenMsgCycleTime or a project's own fields.
The Signals sheet can be laid out two ways. Pick by what you do with the file next.
Every row repeats its message name, ID and sender. Filter by ID, pivot by sender, load it into pandas, or compare two exports line by line.
Each message appears once with its signals listed beneath it and a rule between messages. It reads like the CAN matrix a supplier sends, which suits reviews and hand-overs.
Most requests come from someone without CANdb++, or from someone who wants the signal list where they can annotate it.
Test benches, suppliers and customers often need only the interface list. A workbook opens anywhere and needs no tool licence.
Filter by sender or receiver, add a column for review status, and mark what to verify on the next drive.
A row per signal with its range, unit and value table gives you the boundaries and expected values to cite in a test case.
Export both versions as a flat list and compare the sheets. Added, removed and re-scaled signals show up as changed rows, which is easier to read than a raw text diff.
A few DBC habits look odd in a spreadsheet. Here is how each one is handled.
A DBC stores a 29-bit ID with bit 31 set, so the raw number looks like 2147483648 plus the ID. The sheet shows the real bus ID in hex and decimal, and the frame format beside it.
IDs are written as text such as 0x1A0, so Excel never turns them into numbers or dates. A decimal column sits next to it for lookups.
A DBC uses Vector__XXX where no real node is defined. The sheet leaves that sender or receiver empty instead of listing a placeholder.
The cycle comes from the GenMsgCycleTime attribute. If the DBC does not define it, the cell stays empty rather than guessing.
Excel misreads a UTF-8 CSV that has no byte order mark. The CSV here has one, and the xlsx stores Unicode text, so Chinese comments and value descriptions survive. GBK DBC files are decoded before export.
The Multiplexing column marks the multiplexer signal and each signal's switch value, so you can see which signals share the same bits.
Drop the .dbc file, choose the sheets and the layout, then press Download Excel. The workbook has a frozen header row and filters on every sheet. To use another tool, download a sheet as CSV instead.
No. The file is read and converted in your browser, and the workbook is built on your computer. Nothing is sent to a server.
No. This page only exports. Changes made in the workbook cannot be written back, so keep the DBC as the source of truth and edit it in CANdb++ or a text editor.
The xlsx holds every sheet you ticked, with a styled header row and filters. The CSV is a single table: the sheet shown in the preview. Use it for scripts and databases.
Yes, in two ways. The Signals sheet can carry a value table column such as 0=Off; 1=On, and the Value tables sheet lists every value on its own row.
Yes. GBK and GB18030 DBC files are detected and decoded, and both outputs are Unicode. The CSV starts with a byte order mark so Excel opens it correctly.
Headers follow the language of the page. Use the English page when a script or lookup expects English column names.
Files up to 150 MiB, which is far beyond any real DBC. Excel's row limit of about one million rows is not a concern: a large DBC has a few thousand signals.
A DBC is plain text, so a text editor opens it, but it is hard to read because each signal's comment, value table and attributes are stored elsewhere in the file. Export it to Excel or CSV here to see every signal in one row, or use the DBC viewer to browse it on screen.
The next job after this one, each on its own page.