Legend:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: White-space, formatting, missing semi-colons, etc
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change that improves performance
- test: Adding missing tests
- chore: Changes to the build process or auxiliary tools/libraries/documentation
- fix: sparse celle expect 0 index rows, even when using
header_row
- feat: add ability to merge cells from xls and xlsx
- feat: add options to keep first empty rows for xlsx
- feat: support consecutive repeated empty cells for ods
- feat: add new
header_row
config - test: fix broken fuzzer
- docs: fix broken links in README
- docs: enable dates and pictures features in docs.rs build
- chore: bump MRSV to 1.73
- feat: added
is_error
andget_error
methods to theDataType
trait - feat: add deserializer helper functions
- feat: support get merged region
- feat: add
Range::headers
method - feat: expose some
Dimensions
methods - fix: use case insensitive comparison when searching for file in xlsx
- fix: do not panic when reading cell format with invalid index
- chore: use
OnceLock
instead of once_cell crate (MSRV: 1.71)
- refactor (breaking): rename
DataType
enum toData
andDataTypeRef
toDataRef
- feat: introduce a
DataType
trait implemented by bothData
andDataRef
. - feat:
Data
andDataType
now returnSome(0{.0})
andSome(1{.0})
rather thanNone
when.as_i64
or.as_f64
is used on a Bool value - fix: getting tables names on xlsx workbook without _rels files
- refactor: DateTime(f64) to DateTime(ExcelDateTime)
- feat: detect xlsb/ods password protected files
- feat: introduce is_x methods for date and time variants
- fix:
worksheet_formula
not returning all formula
- feat: add new
DataTypeRef
available fromworksheet_range_ref
to reduce memory usage - docs: add benchmark plot
- fix: truncated text in xls
- feat: detect if workbook is password protected
- fix: regression on
Range::get
- chore: update GitHub actions
- fix: spelling of formula error type
- feat: support label cells for xls
- refactor: clippy
- perf: preallocate several buffers
- docs: improve
de_opt_f64
example. - docs: remove datetime notice from README
- feat: add support of sheet type and visibility
- style: clippy
- chore: bump MSRV to 1.63 (breaking)
- chore: set edition to 2021
- feat: implement blank string handling
- fix: formula with string not displaying properly
- chore: bump MSRv to 1.60.0 due to log dependencies
- fix: xls: formula values ignored
- fix: xls: formula (string) not displayed properly
- fix: (xlsx) support
r
attribute - fix: support
PROJECTCOMPATVERSION
in vba - fix: incorrect date parsing due to excel bug
- feat: support for duration
- test: add MSRV
- refactor: bump dependencies
- feat: (all) parse format/style information to infer cell as datetime
- feat: (ods) support number-columns-repeated attribute
- refactor: multiple clippy refactorings
- feat: Extract picture data by turning
picture
feature on
- fix: wrong range len calculation
- fix: date precision
- fix: Several decoding issues in xls and xlsb
- fix: Wrong decimal parsing
- refactor: bump dependencies (quick-xml in particular and chrono)
- feat: always return sheet names in lexicographic order (BTreeMap)
- chore: remove travis
- fix: Allow empty value cells in xlsx
- fix: obscure xls parsing errors (#195)
- feat: Improve conversions from raw data to primitives
- docs: fix two typos in readme
- feat: replace macro matches! by match expression to reduce MSRV
- feat: use
chunks_exact
instead of chunks where possible - fix: make
to_u32
,read_slice
safe and sound - fix: security issue #199
- test: add regression tests that fail with miri
- feat: detect date/time formatted cells in XLSX
- feat: brute force file detection if extension is not known
- feat: support xlsx sheet sizes beyond u32::MAX
- test: ensure doctest functions actually run
- test: run cargo fmt to fix travis tests
- fix: fix Float reading for XLSB
- docs: add
deserialize_with
example in readme - fix: Skip phonetic run
- fix: Fix XLS float parsing error
- docs: Correct MBSC to MBCS in vba.rs (misspelled before)
- style: use 2018 edition paths
- fix: Add the ability to read formula values from XLSB
- fix: support integral date types
- feat: Make
Metadata.sheets
(andReader.sheet_names
) always return names in workbook order - style: fix warnings in tests
- feat: deprecate failure and impl
std::error::Error
for all errors. - feat: add
dates
feature to enrichDataType
with date conversions fns.
- feat: update dependencies
- fix: wrong bound comparisons
- feat: improve deserializer
- feat: bump dependencies
- feat: add several new convenient fn to
DataType
- feat: add a
Range::range
fn to get subranges - feat: add a new
Range::cells
iterator - feat: impl DoubleEndedIterator when possible
- perf: add some missing
size_hint
impl in iterators - feat: add a
Range::get
fn (similar to slice's) - perf: add some
ExactSizeIterator
- feat: consider empty cell as empty str if deserializing to str or String
- fix: xls - allow sectors ending after eof (truncate them!)
- feat: codepage/encoding_rs for codpage mapping
- fix: serde map do not stop at first empty value
- fix: do not return map keys for empty cells. Fixes not working
#[serde(default)]
- feat: bump dependencies
- feat: add a
RangeDeserializerBuilder::with_headers
fn to improve serde deserializer
- feat: ods, support text:s and text:p
- fix: support MulRk for xls files
- fix: properly parse richtext ods files
- refactor: bump dependencies
- feat: ods: display sheet names in order.
- feat: handle 'covered cells' which are behind merge-cells in ODS
- fix: boolean detection and missing repeated cells in ODS
- refactor: bump dependencies
- fix: possibility of index out of bound in get_value and eventually in Index<(usize, usize)>
- feat: have Range
start
/end
return None if the range is actually empty - feat: Have
Range::get_value
return an Option if the index is out of range
- refactor: bump dependencies
- feat: make
Range::from_sparse
public
- feat: migrate from error-chain to failure
- refactor: simplify Reader trait (enable direct Xlsx read etc ...)
- refactor: always initialize at creation
- feat: more documentation on error
- feat: bump dependencies (calamine, encoding_rs and zip)
- feat: process any Read not only Files
- docs: fix various typos
- feat: update dependencies
- feat: add serde deserialization
- perf: update dependencies, in particular quick-xml 0.9.1
- fix: add a bound check when decoding cfb
- refactor: bump dependencies
- refactor: bump dependencies
- style: ignore .bk files
- refactor: bump dependencies
- refactor: update to quick-xml 0.7.3 and encoding_rs 0.6.6
- feat: implement Display for DataType and CellTypeError
- feat: add a CellType alias trait
- perf: update to quick-xml 0.7.1
- refactor: update encoding_rs to 0.6.2
- perf: add benches and avoid clearing a buffer supposed to be reused
- feat: add support for formula parsing/decoding
- refactor: make
Range
generic over its content - fix: convert codepage 21010 as codepage 1200
- fix: support EUC_KR encoding
- fix: error while using a singlebyte encoding for xls files (read_dbcs)
- fix: error while using a singlebyte encoding for xls files (short_strings)
- feat: support defined names for named ranges
- refactor: better internal logics
- refactor: rename
Excel
inSheets
to accommodate OpenDocuments - feat: add Index/IndexMut for Range
- feat: add basic support for opendocument spreadsheets
- style: apply rustfmt
- feat: force rustfmt on travis checks
- fix: extend appveyor paths to be able to use curl
- refactor: update deps
- fix: extract richtext reading from
read_shared_strings
toread_string
, and use for inlineStr instead ofread_inline_str
- style: rustfmt
- fix: enable namespaced xmls when parsing xlsx files
- refactor: bump dependencies
- refactor: move from rust-encoding to encoding_rs (faster), loses some decoders ...
- refactor: bump to quick-xml 0.6.0 (supposedly faster)
- style: rustfmt the code
- feat: xlsx - support 'inlineStr' elements (
<is>
nodes) - fix: xlsx - support sheetnames prefixed with 'xl/' or '/xl/'
- chore: bump deps (error-chain 0.8.1, quick-xml 0.5.0)
- refactor: replace
try!
with?
operator - feat: adds a new
worksheet_range_by_index
function. - feat: adds new
ErrorKind
s - refactor: simplify
search_error
example by using arun()
function
- refactor: update dependencies (error-chain and byteorder)
- refactor: update dependencies
- perf: [xls] preload vba only instead of sheets only
- refactor: [vba] consume cfb in constructor and do not store cfb
- feat: [all] better
Range
initialization viaRange::from_sparse
- feat: [all] several new fn in
Range
(used_cells
,start
,end
...) - refactor: adds a
range_eq!
macro in tests
- fix: [xls] allow directory start to empty sector if version = 3
- fix: [vba] support all project codepage encodings
- feat: [xls] early exit if workbook is password protected
- fix: [xls] better decoding based on codepage
- fix: [xlsb] simplify setting values and early exit when stepping into an invalid BrtRowHdr
- fix: [xlsb] fix record length calculation
- fix: [all] allow range to resize when we try to set a value out of bounds
- docs: less
unwrap
s, no unused imports - refactor: range bounds is not (
start
,end
) instead of (position
,size
) - feat: add new methods for
Range
:width
,height
,is_empty
- fix: [xls] better management of continue record for rich_extended_strings
- fix: [all] return error when trying to set out of bound values in
Range
- fix: [xls] do a proper encoding when reading cells (force 2 bytes unicode instead of utf8)
- fix: [xls] support continue records
- fix: [all] allow empty rows iterator
- fix: remove some development
println!
- first release!