Turn report headings into usable field names
Flatten Multi-Row Table Headers converts several selected heading rows into one explicit set of column names. Reports often place a year above a month and a measure, making the table easy to read visually but difficult to append or compare by field name. Combining those levels into names such as 2026 / Jan / Sales gives each data column a meaningful identity without changing its data values.
This task is different from renaming an already tidy table. You must identify which rows describe the columns and where the first real record begins. The tool does not guess that every decorative row above the data belongs in a heading. Selecting the right boundaries is part of the operation, and the original region remains available while you review the proposed mapping.
Choose a file or continue from the workbench
Choose files accepts XLSX, CSV, TSV, and text for this task. You can also paste a table or use current workbench data. For XLSX, select a worksheet and review its actual used range, visible state, hidden rows, and hidden columns. Hidden content is excluded unless explicitly included. Confirm the range after checking it; changing a range requires another confirmation.
CSV and pasted text do not contain reliable merged-cell geometry. Empty values in a heading row might represent a merged label, an intentional blank, or a different layout convention. The tool therefore treats empty cells as empty by default. An explicit inheritance rule is available when you know the intended groups, but it is not presented as automatic recovery of an Excel layout.
Preview before choosing header rows
Preview selected area and value modes shows the original region, including the heading rows. Within the header settings, row and column numbers refer to that selected-area preview, starting at one. Source locations remain available separately. If your selected region begins at worksheet row five, preview row one and worksheet row five describe the same location in different coordinate systems.
Set First header row, Last header row, First data row, First column, and Last column. The first data row must come after the selected heading rows. Rows before it are intentionally outside the resulting data, so inspect the transition carefully. A first business record that happens to look like a heading must not be swallowed simply because it contains text rather than numbers.
Header name preview updates after you change the level separator or inheritance settings. It shows candidate mappings and unresolved naming conflicts without authorizing delivery. Run complete input to produce the final data and reports; changing a setting still invalidates an earlier completed result.
Combine levels without silently removing meaning
Level separator controls the text placed between levels. A slash with surrounding spaces is readable for report fields, while an underscore can suit a receiving schema. Choose a separator appropriate for the next application and review the full resulting names. Reversing the level order is explicit, so you can put the measure before the year when that better matches your downstream field convention.
Ignore empty levels omits empty components rather than producing repeated separators. Repeated levels defaults to keeping all text. Removing adjacent repeats and removing all repeats are separate options because a repeated word can be meaningful in different positions. A category and a measure with the same spelling are not automatically redundant. Every option changes the proposed field mapping before it changes any exported names.
Follow real XLSX merged ranges
An XLSX worksheet records merged-cell ranges. The tool inherits the anchor label only within the actual recorded range. If 2026 spans columns B and C, its text may supply the year level for those two columns. It must not flow into column D when that column belongs to 2027. This behavior avoids the common mistake of filling every blank cell rightward across an entire heading row.
A merged range crossing the chosen heading or column boundary needs explicit review. You may enlarge the selected region or confirm the crossing when the anchor is available. If the anchor lies outside the available preview, include it before proceeding. A confirmation does not invent an anchor value that was never read. Inspect overlapping headings and intentionally blank child labels in the original region before accepting the generated names.
Define CSV inheritance boundaries deliberately
For CSV or pasted data, CSV blank inheritance offers no inheritance or rightward inheritance within explicit boundaries. When inheritance is enabled, provide the ending column number of every group, in order. The last boundary must match Last column. This makes it possible to fill a known two-column year group without allowing the label to spill into an unrelated group beside it.
The inference is a user-supplied rule, not evidence of a merge in the source. Keep a record of why those boundaries were chosen. If a blank was intentional, leave it blank or edit that column's final name manually. If you still have the XLSX original, selecting that file provides better merge evidence than a CSV export that has already flattened the workbook's formatting information.
Resolve empty and duplicate names
The result includes Header mapping and Name conflicts views. The mapping pairs each selected column with its original levels and proposed output name. An empty final name or a duplicate name blocks delivery unless you explicitly choose stable suffixes or supply manual names. The engine does not let one same-named column overwrite another column's data.
Stable suffixes preserve all selected columns and add deterministic distinguishing text. Manual column names let you express the actual business difference more clearly. Review manually named columns alongside their original levels, especially when two sections both use a generic label such as Total. A suffix resolves a technical collision but does not by itself explain why the two business measures differ.
A complete year and month example
Consider a region whose first row contains id, 2026 across two merged columns, and 2027. The second row contains a blank under id, Jan, Feb, and Jan. The next two rows contain identifiers 00123 and 00456 with three amounts each. Select the first two rows as headers, the third row as the first data row, all four columns, and the default separator.
The resulting names are id, 2026 / Jan, 2026 / Feb, and 2027 / Jan. The two business records remain complete and in their original order. The identifier text still contains its leading zeros. If another selected column produces the same name, the conflict report identifies that column rather than dropping it. Compare both the final grid and the mapping before exporting.
Choose output and continue the workflow
Run complete input produces the full selected data and mapping. The grid displays one page at a time, while its counts refer to the complete result. Select CSV or XLSX output and an explicit export scope. XLSX output stores the selected data representations as text cells in a new data workbook; it does not copy the original workbook's presentation, formulas, drawings, or protection settings.
Verify export and show summary checks the generated data by reading it back. Confirm download new copy saves the chosen result or reports. Continue with the result into workbook merging or unpivoting when the new single-row schema has been reviewed. The handoff uses the processed table, not the original unflattened header rows. Real data does not appear in the destination page's address.
Limits, value modes, and recovery
Stored values and displayed text can differ in XLSX. A numeric identifier displayed as 00123 may be stored as 123. Choose displayed-text columns when that visible spelling is the intended output, and inspect the value-details report. Formulas are never calculated here. A missing saved result remains unresolved and must be addressed before a complete value result can be claimed.
Undo settings revisits your local rule choices, and changed settings make prior results stale. Cancel task terminates active processing. Large dimensions, long fields, excessive cells, unsafe packages, and unsupported workbook formats are rejected. The supported workbook input is unencrypted XLSX, not XLS, XLSM, or ODS. Refreshing or closing clears the session; changing interface language does not translate headings, dates, numbers, or other user data.
Frequently asked questions
How can I turn two header rows into one set of column names?
Select the header rows and the first data row explicitly, then review the combined field names. XLSX merged ranges can help identify the intended hierarchy; a CSV does not retain that workbook structure. Resolve blank or duplicate names and verify that the first real record has not been included in the header range.
Does flattening modify any data cells?
The operation selects data rows and columns and changes the header names. It does not clean or recalculate the selected data cells. Check First data row carefully, because choosing it is an explicit instruction to exclude earlier non-data rows from the output.
Why are some merged headings still unresolved?
A merge anchor may fall outside the selected region, or a resulting name may be empty or duplicated. Review the original region and mapping. Expanding the region or supplying an explicit final name is safer than assuming an unrelated nearby value is the missing label.
Can I use CSV to recover merged cells automatically?
No. CSV contains fields and records, not the original workbook’s merge geometry. You may supply bounded inheritance when you know the intended grouping, but that rule is a deliberate interpretation. Use XLSX when actual merge ranges are needed as evidence.
What prevents the first record from becoming a header?
Your explicit First data row separates records from headings. The preview and source locations let you inspect the boundary before running. Check the resulting record count against the selected source area, especially when heading rows contain numbers or data rows contain descriptive text.