Feature parity with XLSX.jl's FileIO extension - #69
Merged
Merged
Conversation
- load("file.xlsx") without a sheet argument loads the first sheet.
- New transpose=true keyword for load (fixes #12), for sheets organized in
rows rather than columns.
- save accepts any Tables.jl source in addition to iterable tables, can
write multiple sheets via save(file, "name" => table, ...) (fixes #38),
overwrites existing files by default in line with other FileIO formats
(fixes #24; pass overwrite=false for the old error), and passes keyword
arguments through to XLSX.writetable.
- Tests proving the lazy ExcelFile return works as a Tables.jl source
(Tables.columns) and with DataFrame, so it is a drop-in for sinks.
- README: document the new features, fix the colnames type (Vector{Symbol},
fixes #44), add an open-once-read-many example via ExcelReaders.openxl
(fixes #34), and point to XLSX.readtable for its exclusive options.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares ExcelFiles for the request to restore its FileIO registration, by closing the feature gaps against XLSX.jl's FileIO extension so the switch is painless for users who rely on the current routing:
load("file.xlsx")loads the first sheet (was an error).transpose=truekeyword forload(fixes Transposing sheet before entering into DataFrame #12) — parity with the XLSX extension's flag; works for both xls and xlsx since the transpose happens on the materialized matrix.saveaccepts any Tables.jl source (not just iterable tables), writes multiple sheets viasave(file, "name" => table, ...)(fixes write multiple sheets to the same file #38), overwrites existing files by default in line with CSV/JLD2/FileIO conventions (fixes Make it default to overwrite existing files instead of throwing an Error #24;overwrite=falserestores the guard), and forwards keyword arguments (sheetname,anchor_cell, ...) toXLSX.writetable.ExcelFilereturn feedsTables.columnsandDataFramedirectly (via Tables.jl's TableTraits fallback), so sink-position usage is unchanged relative to the eagerXLSX.DataTable.colnamestype documentation (Vector{Symbol}, fixes Documentation for colnames is wrong for load() #44), adds an open-once-read-many-sheets example viaExcelReaders.openxl(fixes Open .xlsx file once and read multiple sheets #34), and points toXLSX.readtableas the direct escape hatch for its exclusive options (native Exceltable_namereads,stop_in_row_function,missing_strings, typed eager columns).The remaining intentional differences vs the XLSX extension: the return value is a lazy descriptor rather than an eagerly parsed table (that is the point — it keeps backend-swapped/pushed-down reads possible), and the fine-grained
readtableknobs stay withXLSX.readtabledirectly.All test items green locally. Feature release → suggest v1.1.0 (NEWS included; version bump left to you).
🤖 Generated with Claude Code