diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 86d6f5b..5c52c96 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,8 @@ +0.4.1 - November 20, 2023 +------------------------- + +* fix: :meth:`.Table.from_xlsx` no longer errors on unsized sheets. + 0.4.0 - November 7, 2023 ------------------------ diff --git a/agateexcel/table_xlsx.py b/agateexcel/table_xlsx.py index aa62f69..a522d95 100644 --- a/agateexcel/table_xlsx.py +++ b/agateexcel/table_xlsx.py @@ -72,7 +72,10 @@ def from_xlsx(cls, path, sheet=None, skip_lines=0, header=True, read_only=True, offset = 0 rows = [] - if read_only and (reset_dimensions or reset_dimensions is None and sheet.calculate_dimension() == 'A1:A1'): + if ( + read_only + and (reset_dimensions or (reset_dimensions is None and sheet.max_column == 1 and sheet.max_row == 1)) + ): try: sheet.reset_dimensions() sheet.calculate_dimension(force=True) diff --git a/docs/conf.py b/docs/conf.py index f82fc3b..c181b33 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,7 +12,7 @@ project = 'agate-excel' copyright = '2017, Christopher Groskopf' -version = '0.4.0' +version = '0.4.1' release = version # -- General configuration --------------------------------------------------- diff --git a/examples/covid_19-iss.xlsx b/examples/covid_19-iss.xlsx new file mode 100644 index 0000000..d7c082b Binary files /dev/null and b/examples/covid_19-iss.xlsx differ diff --git a/examples/ne_1033_data.xlsx b/examples/ne_1033_data.xlsx new file mode 100644 index 0000000..595d201 Binary files /dev/null and b/examples/ne_1033_data.xlsx differ diff --git a/setup.py b/setup.py index 995aa83..192b5cc 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name='agate-excel', - version='0.4.0', + version='0.4.1', description='agate-excel adds read support for Excel files (xls and xlsx) to agate.', long_description=long_description, long_description_content_type='text/x-rst', diff --git a/tests/test_table_xlsx.py b/tests/test_table_xlsx.py index 80b78e8..d7fb947 100644 --- a/tests/test_table_xlsx.py +++ b/tests/test_table_xlsx.py @@ -137,3 +137,16 @@ def test_row_limit_too_high(self): self.assertColumnNames(table, self.column_names) self.assertColumnTypes(table, [agate.Number, agate.Text, agate.Boolean, agate.Date, agate.DateTime]) self.assertRows(table, [r.values() for r in self.table.rows]) + + def test_from_xlsx_unsized(self): + table = agate.Table.from_xlsx('examples/ne_1033_data.xlsx') + + self.assertEqual(len(table.columns), 14) + self.assertEqual(len(table.rows), 1036) + + def test_from_xlsx_size_1(self): + # https://github.com/wireservice/csvkit/issues/1129 + table = agate.Table.from_xlsx('examples/covid_19-iss.xlsx') + + self.assertEqual(len(table.columns), 18) + self.assertEqual(len(table.rows), 46)