From 59b0f307806e562324acbaa0baca9968a5a0800a Mon Sep 17 00:00:00 2001 From: FasAdrian <86314511+FasAdrian@users.noreply.github.com> Date: Fri, 7 Aug 2026 13:04:33 +0200 Subject: [PATCH] Raise of archive package version --- lib/src/ods.dart | 2 +- lib/src/spreadsheet.dart | 13 ++++++------- lib/src/xlsx.dart | 4 ++-- pubspec.yaml | 4 ++-- tool/archive.dart | 6 +++--- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/lib/src/ods.dart b/lib/src/ods.dart index 261b736..a2b00f3 100644 --- a/lib/src/ods.dart +++ b/lib/src/ods.dart @@ -97,7 +97,7 @@ class OdsDecoder extends SpreadsheetDecoder { void _parseContent() { var file = _archive.findFile(contentXML); file?.decompress(); - var content = XmlDocument.parse(utf8.decode(file?.content)); + var content = XmlDocument.parse(utf8.decode(file?.content.toList() ?? [])); if (_update == true) { _archiveFiles = {}; _sheets = {}; diff --git a/lib/src/spreadsheet.dart b/lib/src/spreadsheet.dart index 0316ad1..1520489 100644 --- a/lib/src/spreadsheet.dart +++ b/lib/src/spreadsheet.dart @@ -69,9 +69,9 @@ abstract class SpreadsheetDecoder { return _newSpreadsheetDecoder(archive, update); } - factory SpreadsheetDecoder.decodeBuffer(InputStreamBase input, + factory SpreadsheetDecoder.decodeBuffer(InputStream input, {bool update = false, bool verify = false}) { - var archive = ZipDecoder().decodeBuffer(input, verify: verify); + var archive = ZipDecoder().decodeStream(input, verify: verify); return _newSpreadsheetDecoder(archive, update); } @@ -169,7 +169,7 @@ abstract class SpreadsheetDecoder { var content = utf8.encode(xml); _archiveFiles[xmlFile] = ArchiveFile(xmlFile, content.length, content); } - return ZipEncoder().encode(_cloneArchive(_archive)) as List; + return ZipEncoder().encode(_cloneArchive(_archive)); } /// Encode data url @@ -188,10 +188,9 @@ abstract class SpreadsheetDecoder { if (_archiveFiles.containsKey(file.name)) { copy = _archiveFiles[file.name]!; } else { - var content = file.content as Uint8List; - var compress = file.compress; - copy = ArchiveFile(file.name, content.length, content) - ..compress = compress; + copy = ArchiveFile(file.name, file.content.length, file.content) + ..compression = file.compression + ..compressionLevel = file.compressionLevel; } clone.addFile(copy); } diff --git a/lib/src/xlsx.dart b/lib/src/xlsx.dart index 22421bd..3066971 100644 --- a/lib/src/xlsx.dart +++ b/lib/src/xlsx.dart @@ -306,7 +306,7 @@ class XlsxDecoder extends SpreadsheetDecoder { void _parseContent() { var workbook = _archive.findFile('xl/workbook.xml'); workbook?.decompress(); - var document = XmlDocument.parse(utf8.decode(workbook?.content)); + var document = XmlDocument.parse(utf8.decode(workbook?.content.toList() ?? [])); document.findAllElements('sheet').forEach((node) { _parseTable(node); }); @@ -323,7 +323,7 @@ class XlsxDecoder extends SpreadsheetDecoder { var file = _archive.findFile(namePath); file?.decompress(); - var content = XmlDocument.parse(utf8.decode(file?.content)); + var content = XmlDocument.parse(utf8.decode(file?.content.toList() ?? [])); var worksheet = content.findElements('worksheet').first; var sheet = worksheet.findElements('sheetData').first; diff --git a/pubspec.yaml b/pubspec.yaml index 0da5762..d597a1e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,13 +1,13 @@ name: spreadsheet_decoder description: A lightweight library for parsing and updating spreadsheet documents -version: 2.3.0 +version: 2.3.0-obscuro.1 homepage: https://github.com/sestegra/spreadsheet environment: sdk: "^3.0.0" dependencies: - archive: ^3.6.1 + archive: ^4.0.9 xml: ^6.5.0 dev_dependencies: diff --git a/tool/archive.dart b/tool/archive.dart index 0b5eac0..2064da6 100644 --- a/tool/archive.dart +++ b/tool/archive.dart @@ -7,9 +7,9 @@ Archive cloneArchive(Archive archive) { var clone = Archive(); for (var file in archive.files) { if (file.isFile) { - var content = file.content as Uint8List; - var copy = ArchiveFile(file.name, content.length, content) - ..compress = file.compress; + var copy = ArchiveFile(file.name, file.content.length, file.content) + ..compression = file.compression + ..compressionLevel = file.compressionLevel; clone.addFile(copy); } }