diff --git a/.editorconfig b/.editorconfig
index 68c52882..527d6172 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -28,3 +28,5 @@ dotnet_diagnostic.CA2007.severity = error
# CA2016: Forward the CancellationToken parameter to methods that take one
dotnet_diagnostic.CA2016.severity = error
+
+csharp_style_namespace_declarations = file_scoped:silent
\ No newline at end of file
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 86ec56e9..361346e3 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -13,10 +13,10 @@ name: "CodeQL"
on:
push:
- branches: [ master ]
+ branches: [ master, v1.x-maintenance ]
pull_request:
# The branches below must be a subset of the branches above
- branches: [ master ]
+ branches: [ master, v1.x-maintenance ]
schedule:
- cron: '18 0 * * 0'
diff --git a/MiniExcel.sln b/MiniExcel.sln
index 8d3d52f2..bebab6af 100644
--- a/MiniExcel.sln
+++ b/MiniExcel.sln
@@ -18,6 +18,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs and setting", "Docs an
README.zh-Hant.md = README.zh-Hant.md
.github\workflows\benchmark.yml = .github\workflows\benchmark.yml
.github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml
+ docs\core_logic_diagram.drawio = docs\core_logic_diagram.drawio
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CC1E0601-AEC9-42D7-8F6A-3FB3939EED16}"
diff --git a/README.md b/README.md
index b02bd0a6..3328916f 100644
--- a/README.md
+++ b/README.md
@@ -1457,6 +1457,8 @@ MiniExcel.SaveAs(path, reader,configuration:config);
#### 6. Batch Add Image (MiniExcel.AddPicture)
+Please add pictures before batch generate rows data, or system will load large memory usage when calling AddPicture.
+
```csharp
var images = new[]
{
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 1a938305..e55b6a1a 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -1634,6 +1634,8 @@ public class Order
#### 6. 批量添加/插入图片 (MiniExcel.AddPicture)
+请在批量生成行数据之前添加图片,否则在调用 AddPicture 时系统会占用大量内存。
+
```csharp
var images = new[]
{
diff --git a/README.zh-Hant.md b/README.zh-Hant.md
index ff1562b3..13b3c64d 100644
--- a/README.zh-Hant.md
+++ b/README.zh-Hant.md
@@ -1368,6 +1368,8 @@ MiniExcel.SaveAs(path, reader,configuration:config);
#### 6. 批量添加/插入圖片 (MiniExcel.AddPicture)
+請在批量生成行資料之前新增圖片,否則在呼叫 AddPicture 時系統將會佔用大量記憶體。
+
```csharp
var images = new[]
{
diff --git a/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/QueryXlsxBenchmark.cs b/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/QueryXlsxBenchmark.cs
index 1e429e3b..f2f9a1a5 100644
--- a/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/QueryXlsxBenchmark.cs
+++ b/benchmarks/MiniExcel.Benchmarks/BenchmarkSections/QueryXlsxBenchmark.cs
@@ -113,12 +113,12 @@ public void NPOI_Query_Test()
for (var i = start; i <= end; i++)
{
- var row = worksheet.GetRow(i);
- if (row == null)
- continue;
- for (var j = row.FirstCellNum; j <= row.LastCellNum; j++)
+ if (worksheet.GetRow(i) is { } row)
{
- var cellValue = row.GetCell(j)?.StringCellValue;
+ for (var j = row.FirstCellNum; j <= row.LastCellNum; j++)
+ {
+ var cellValue = row.GetCell(j)?.StringCellValue;
+ }
}
}
}
diff --git a/docs/README.md b/docs/README.md
index cf28a705..b5fe2077 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -23,6 +23,14 @@
---
+### 1.41.3
+- [New] Adding QuoteWhitespaces option to CsvConfiguration for adding double quotes to string containing whitespaces #790 (via @michelebastione )
+- [Bug] Fixed bug that made the DynamicExcelColumn property "Ignore" not work when generating using an IDataReader as source #584 (via @michelebastione )
+- [Bug] v1.41.2 AddPicture not working #814 (via @shps951023)
+- [Bug] v1.41.1 AddPicture image max column and row are 2 cells #815 (via @shps951023)
+- [Bug] AddPicture get error same export file and second time. #817 (via @shps951023)
+
+
### 1.41.2
- [New] Fixes enum behaviour and adds support for DescriptionAttribute when saving by template (via @michelebastione )
- [Bug] SaveAsByTemplate - Excel Dimension Xml is null #459 (via @michelebastione )
diff --git a/docs/README.zh-CN.md b/docs/README.zh-CN.md
index b1df9803..7b9d4fe6 100644
--- a/docs/README.zh-CN.md
+++ b/docs/README.zh-CN.md
@@ -27,6 +27,17 @@
+### 1.41.3
+
+* 【新增】在 `CsvConfiguration` 中新增 `QuoteWhitespaces` 选项,用于对空白单元的字符串加上双引号 #790(贡献者:@michelebastione)
+* 【修复】修正使用 `IDataReader` 作为数据源时,`DynamicExcelColumn` 的 `Ignore` 属性无效的问题 #584(贡献者:@michelebastione)
+* 【修复】v1.41.2 中 `AddPicture` 功能无法使用的问题 #814(贡献者:@shps951023)
+* 【修复】v1.41.1 中 `AddPicture` 插入的图片最大列和行仅限于2个单元格的问题 #815(贡献者:@shps951023)
+* 【修复】`AddPicture` 在导出文件后再次执行时出现错误的问题 #817(贡献者:@shps951023)
+
+
+
+
### 1.41.2
- [New] 增加 enum behaviour and adds support for DescriptionAttribute when saving by template (via @michelebastione )
- [Bug] SaveAsByTemplate - Excel Dimension Xml is null #459 (via @michelebastione )
diff --git a/docs/README.zh-Hant.md b/docs/README.zh-Hant.md
index 2dfbbd81..b019e584 100644
--- a/docs/README.zh-Hant.md
+++ b/docs/README.zh-Hant.md
@@ -25,6 +25,16 @@
---
+
+### 1.41.3
+
+* 【新增】在 CsvConfiguration 中新增 `QuoteWhitespaces` 選項,讓包含空白字元的字串自動加上雙引號 #790(由 @michelebastione 提供)
+* 【修正】修正當使用 IDataReader 作為資料來源時,DynamicExcelColumn 的 `Ignore` 屬性無效的問題 #584(由 @michelebastione 提供)
+* 【修正】v1.41.2 中 `AddPicture` 功能無法使用的問題 #814(由 @shps951023 提供)
+* 【修正】v1.41.1 中 `AddPicture` 插入的圖片最大列與欄僅為兩格儲存格的問題 #815(由 @shps951023 提供)
+* 【修正】當再次使用相同匯出檔案時,`AddPicture` 發生錯誤的問題 #817(由 @shps951023 提供)
+
+
### 1.41.2
- [New] 增加 enum behaviour and adds support for DescriptionAttribute when saving by template (via @michelebastione )
- [Bug] SaveAsByTemplate - Excel Dimension Xml is null #459 (via @michelebastione )
diff --git a/docs/core logic 1.drawio b/docs/core logic 1.drawio
deleted file mode 100644
index 6b229705..00000000
--- a/docs/core logic 1.drawio
+++ /dev/null
@@ -1 +0,0 @@
-7Vzdj6o4FP9r+rgJ35ZHUdxNdszcZB52sm8IVckANQWvzv3rty1FscW9zG68ZWBetByKyPn1fPcA7EV+/p1Eh/0aJygDlpGcgb0ElmVahkW/GOW9pswMrybsSJqISVfCS/oDCaIhqMc0QeXNxArjrEoPt8QYFwWKqxtaRAg+3U7b4uz2rodohxTCSxxlKvWvNKn2NRW6xpX+B0p3++bOpiHO5FEzWRDKfZTgU4tkh8BeEIyrepSfFyhjzGv4Ul+3unP28scIKqo+F6yTp/wt+vu49s6nYvdalXP0529O/Svfo+woHvj16eUVhB7wPQBnIHRAEICAYuZl9C7BhtDRjo1ACMF8BuY2CF326dPBDASUGIrnrd4bJtJHP7BhWaEDvfSASJqjChFB+nY9Dk77tEIvhyhm8090TVHavsozemTS4TY9o2aV1MdZtsAZJvxGdhIhuI0pvawIfkOtM14M0WbL/nf9wIhU6HyXk+YFH7qwEaZ/jrzTKeKCy+IUa9q0xfHpukLMBvZ9a3VAQYvEotxdfvqKGx0I6D4Ao6vAGJ5jLoktmCimIfANNghcAE2G1xwCGCh4EXwsEsRuaPSBRAMEjoSA0xMB71EIeAoCHZxXhOj5gIrX9dPYBcaGQxMY2AGXw7QX5BIDKXQLhtvcBNATAAaegtPHRGMLYxR3MnsDXcc1HiIalu1rFo1GW8qyAYEPGWspgylrQx/MA+A7+mTh18AjGw/L6onPw2TBNL/wua+rBoCPpeCzTotUWPj/pZESF8HE6WIptDa25z1EI9najbVpKxx9qQiK8qtvpM8i/xJIZC1ka7fIphqKsMgiMLinCnmIseRayGTGmJ5iRtoduzpyZXOuXx2pwQb3lCBDhsJCwYE8OgyWAPrcgKyArwYZI/NxZaD0+7hmd0wSrJgVZ0AFXJBmTOPVYSGLUhZjB8rzBwfUbOrmSHa6BmCO1Ajx2/PiuSsP5jFL5FNhM5L3IsrTuGPSyPGTld8A8PO73YlAxDJUpgJut/wV8yKYg0FdC6sL31ZegKUDFl0URa2OHHBZieoHvLmZBDh0mWfCALf5gAJl88Q2z3D7/tj9Rxko/f6j1ZFuEFKXpN8bseNlCMugPEPNWXq31oSOa47Fj/Rwb/a4nRo5nnOgdnlUsxZNTSIqouy9TEv2hATHqCwVeD5dBcLxezL8YUkNS01qdMjIt4iUabHrLVOXCsUUpUp2SwcgVWqWpJGqFYlydMLkTUHlE1QpXKi7SmGpaY01yrH45RF7CLLpcGfaPQQ1cTENKGR9MwAo1NTEp649ePrNtJpYEMmekYeMsp7x9BtTNUfA7OcGY2pD2W6NKGeMrD/VzACbW+4RqsauluTsjn611GQb2mpJbD1UcYpxQR+/THGhUcS01CD0+6u2GuzjY3U4apQZPVWGAUChBuTTMDyyV6Xf8NhqqN5dXKDsaFUVxg2TrLwGAJMabC/RFhGCkk5DE55RXB0rbmjkcwSf6DUb9rx8OG4sZe03ACzV8D7iV/EWgZE7cDIcA3Dg1LjyXhHgbi/CT3OXNy0KsN6WMgPBgpX6JpnPlEOwWd9o+HHrQI2Gp9W5AI2eEDwsIWGrUfC/y5LUzfBVQviI86lf5JoFOIHeB+j3tHMPEy6na2+9y/gKXd44t2Sb7EfufshmB/Yt9jxOBtRYeHqwyKppALCocfGnrjaYhnbr7qgx7MT2lsrax9dvgdVY9Kvu0CMjNAAF1bWl/k7vQ+1EwSXfVTpuJ1cGagBObkd+obv3IeBvLpho78MAgLpbDp+KfZLdsAHYp14ZgXbFokcq7m6XxGDyAVqqHPrRbl5l87P8z6V5olajq9vmiVWreaLHavhvPRVTXDCyyh7AgrmT05A6Lejq4O27wgnS2BKjp8jySG+VHl5fHMXPtV6/ZYf/AA==
\ No newline at end of file
diff --git a/docs/core_logic_diagram.drawio b/docs/core_logic_diagram.drawio
new file mode 100644
index 00000000..2080c187
--- /dev/null
+++ b/docs/core_logic_diagram.drawio
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/xlsx/TestIssue815_1.xlsx b/samples/xlsx/TestIssue815_1.xlsx
new file mode 100644
index 00000000..a2e266e8
Binary files /dev/null and b/samples/xlsx/TestIssue815_1.xlsx differ
diff --git a/samples/xlsx/TestIssue815_1/[Content_Types].xml b/samples/xlsx/TestIssue815_1/[Content_Types].xml
new file mode 100644
index 00000000..431bc4e5
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/[Content_Types].xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/_rels/.rels b/samples/xlsx/TestIssue815_1/_rels/.rels
new file mode 100644
index 00000000..74bfd8d9
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/_rels/.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/docProps/app.xml b/samples/xlsx/TestIssue815_1/docProps/app.xml
new file mode 100644
index 00000000..2e1cee69
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Sheet1falsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/docProps/core.xml b/samples/xlsx/TestIssue815_1/docProps/core.xml
new file mode 100644
index 00000000..5ff2c2da
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/docProps/core.xml
@@ -0,0 +1,2 @@
+
+WeiWei Lin2025-06-20T17:24:16Z2025-06-20T17:24:16Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssue815_1/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..84cb2b36
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/_rels/workbook.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/drawings/_rels/drawing1.xml.rels b/samples/xlsx/TestIssue815_1/xl/drawings/_rels/drawing1.xml.rels
new file mode 100644
index 00000000..0d3c6177
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/drawings/_rels/drawing1.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/drawings/drawing1.xml b/samples/xlsx/TestIssue815_1/xl/drawings/drawing1.xml
new file mode 100644
index 00000000..621e88ba
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/drawings/drawing1.xml
@@ -0,0 +1,86 @@
+
+
+
+
+ 2
+ 0
+ 4
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12
+ 0
+ 6
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/media/image1.Png b/samples/xlsx/TestIssue815_1/xl/media/image1.Png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssue815_1/xl/media/image1.Png differ
diff --git a/samples/xlsx/TestIssue815_1/xl/styles.xml b/samples/xlsx/TestIssue815_1/xl/styles.xml
new file mode 100644
index 00000000..606c7134
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/theme/theme1.xml b/samples/xlsx/TestIssue815_1/xl/theme/theme1.xml
new file mode 100644
index 00000000..4a95cff0
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/theme/theme1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/workbook.xml b/samples/xlsx/TestIssue815_1/xl/workbook.xml
new file mode 100644
index 00000000..75d5a5ad
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/workbook.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssue815_1/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..205832e9
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_1/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssue815_1/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..cf3c093e
--- /dev/null
+++ b/samples/xlsx/TestIssue815_1/xl/worksheets/sheet1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2.xlsx b/samples/xlsx/TestIssue815_2.xlsx
new file mode 100644
index 00000000..d64d0771
Binary files /dev/null and b/samples/xlsx/TestIssue815_2.xlsx differ
diff --git a/samples/xlsx/TestIssue815_2/[Content_Types].xml b/samples/xlsx/TestIssue815_2/[Content_Types].xml
new file mode 100644
index 00000000..431bc4e5
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/[Content_Types].xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/_rels/.rels b/samples/xlsx/TestIssue815_2/_rels/.rels
new file mode 100644
index 00000000..74bfd8d9
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/_rels/.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/docProps/app.xml b/samples/xlsx/TestIssue815_2/docProps/app.xml
new file mode 100644
index 00000000..2e1cee69
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Sheet1falsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/docProps/core.xml b/samples/xlsx/TestIssue815_2/docProps/core.xml
new file mode 100644
index 00000000..879b1b76
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/docProps/core.xml
@@ -0,0 +1,2 @@
+
+WeiWei Lin2025-06-20T17:25:32Z2025-06-20T17:25:32Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssue815_2/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..84cb2b36
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/_rels/workbook.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/drawings/_rels/drawing1.xml.rels b/samples/xlsx/TestIssue815_2/xl/drawings/_rels/drawing1.xml.rels
new file mode 100644
index 00000000..0d3c6177
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/drawings/_rels/drawing1.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/drawings/drawing1.xml b/samples/xlsx/TestIssue815_2/xl/drawings/drawing1.xml
new file mode 100644
index 00000000..a7a0b29c
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/drawings/drawing1.xml
@@ -0,0 +1,86 @@
+
+
+
+
+ 2
+ 0
+ 4
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12
+ 0
+ 6
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/media/image1.Png b/samples/xlsx/TestIssue815_2/xl/media/image1.Png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssue815_2/xl/media/image1.Png differ
diff --git a/samples/xlsx/TestIssue815_2/xl/styles.xml b/samples/xlsx/TestIssue815_2/xl/styles.xml
new file mode 100644
index 00000000..606c7134
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/theme/theme1.xml b/samples/xlsx/TestIssue815_2/xl/theme/theme1.xml
new file mode 100644
index 00000000..4a95cff0
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/theme/theme1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/workbook.xml b/samples/xlsx/TestIssue815_2/xl/workbook.xml
new file mode 100644
index 00000000..5f963b6a
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/workbook.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssue815_2/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..205832e9
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue815_2/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssue815_2/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..3893564e
--- /dev/null
+++ b/samples/xlsx/TestIssue815_2/xl/worksheets/sheet1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1.xlsx b/samples/xlsx/TestIssue816_1.xlsx
new file mode 100644
index 00000000..9cbb6ef6
Binary files /dev/null and b/samples/xlsx/TestIssue816_1.xlsx differ
diff --git a/samples/xlsx/TestIssue816_1/[Content_Types].xml b/samples/xlsx/TestIssue816_1/[Content_Types].xml
new file mode 100644
index 00000000..51b87737
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/[Content_Types].xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/_rels/.rels b/samples/xlsx/TestIssue816_1/_rels/.rels
new file mode 100644
index 00000000..74bfd8d9
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/_rels/.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/docProps/app.xml b/samples/xlsx/TestIssue816_1/docProps/app.xml
new file mode 100644
index 00000000..3db85d1a
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Demofalsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/docProps/core.xml b/samples/xlsx/TestIssue816_1/docProps/core.xml
new file mode 100644
index 00000000..84719d57
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/docProps/core.xml
@@ -0,0 +1,2 @@
+
+WeiWei Lin2015-06-05T18:17:20Z2025-04-20T14:24:59Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssue816_1/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..65485f71
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/_rels/workbook.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/drawings/_rels/drawing8155941d47d148b990d1736b0f18eb14.xml.rels b/samples/xlsx/TestIssue816_1/xl/drawings/_rels/drawing8155941d47d148b990d1736b0f18eb14.xml.rels
new file mode 100644
index 00000000..f54325b6
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/drawings/_rels/drawing8155941d47d148b990d1736b0f18eb14.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/drawings/drawing8155941d47d148b990d1736b0f18eb14.xml b/samples/xlsx/TestIssue816_1/xl/drawings/drawing8155941d47d148b990d1736b0f18eb14.xml
new file mode 100644
index 00000000..4b79ac58
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/drawings/drawing8155941d47d148b990d1736b0f18eb14.xml
@@ -0,0 +1,119 @@
+
+
+
+ 2
+ 0
+ 2
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+ 0
+ 8
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+ 0
+ 8
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/media/image6ef1fcd090e14c71a7feddd858da8770.png b/samples/xlsx/TestIssue816_1/xl/media/image6ef1fcd090e14c71a7feddd858da8770.png
new file mode 100644
index 00000000..8efaf819
Binary files /dev/null and b/samples/xlsx/TestIssue816_1/xl/media/image6ef1fcd090e14c71a7feddd858da8770.png differ
diff --git a/samples/xlsx/TestIssue816_1/xl/media/imagef63d9dc50eff42f7964d4d5830991165.png b/samples/xlsx/TestIssue816_1/xl/media/imagef63d9dc50eff42f7964d4d5830991165.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssue816_1/xl/media/imagef63d9dc50eff42f7964d4d5830991165.png differ
diff --git a/samples/xlsx/TestIssue816_1/xl/media/imagefb0519c58a7b412ba445a8775ba5a5cf.png b/samples/xlsx/TestIssue816_1/xl/media/imagefb0519c58a7b412ba445a8775ba5a5cf.png
new file mode 100644
index 00000000..8efaf819
Binary files /dev/null and b/samples/xlsx/TestIssue816_1/xl/media/imagefb0519c58a7b412ba445a8775ba5a5cf.png differ
diff --git a/samples/xlsx/TestIssue816_1/xl/sharedStrings.xml b/samples/xlsx/TestIssue816_1/xl/sharedStrings.xml
new file mode 100644
index 00000000..a74a5953
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/sharedStrings.xml
@@ -0,0 +1,2 @@
+
+Image1:Image2:
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/styles.xml b/samples/xlsx/TestIssue816_1/xl/styles.xml
new file mode 100644
index 00000000..04695051
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/theme/theme1.xml b/samples/xlsx/TestIssue816_1/xl/theme/theme1.xml
new file mode 100644
index 00000000..f82d9ebb
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/theme/theme1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/workbook.xml b/samples/xlsx/TestIssue816_1/xl/workbook.xml
new file mode 100644
index 00000000..2a833c3d
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/workbook.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssue816_1/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..45203544
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_1/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssue816_1/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..12cc2053
--- /dev/null
+++ b/samples/xlsx/TestIssue816_1/xl/worksheets/sheet1.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2.xlsx b/samples/xlsx/TestIssue816_2.xlsx
new file mode 100644
index 00000000..bf718ad2
Binary files /dev/null and b/samples/xlsx/TestIssue816_2.xlsx differ
diff --git a/samples/xlsx/TestIssue816_2/[Content_Types].xml b/samples/xlsx/TestIssue816_2/[Content_Types].xml
new file mode 100644
index 00000000..3077b7d2
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/[Content_Types].xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/_rels/.rels b/samples/xlsx/TestIssue816_2/_rels/.rels
new file mode 100644
index 00000000..c50b69e8
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/_rels/.rels
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/docProps/app.xml b/samples/xlsx/TestIssue816_2/docProps/app.xml
new file mode 100644
index 00000000..ebd9f193
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/docProps/app.xml
@@ -0,0 +1,27 @@
+
+
+ Microsoft Excel
+ 0
+ false
+
+
+
+ Worksheets
+
+
+ 1
+
+
+
+
+
+ Demo
+
+
+
+ false
+ false
+ false
+ 16.0300
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/docProps/core.xml b/samples/xlsx/TestIssue816_2/docProps/core.xml
new file mode 100644
index 00000000..09f6e3aa
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/docProps/core.xml
@@ -0,0 +1,11 @@
+
+
+ Wei
+ Wei Lin
+ 2015-06-05T18:17:20Z
+ 2025-04-20T14:24:59Z
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssue816_2/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..aafbae06
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/_rels/workbook.xml.rels
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/drawings/_rels/drawinga13dc3bfd6be4e238ad8f91fcc6c646d.xml.rels b/samples/xlsx/TestIssue816_2/xl/drawings/_rels/drawinga13dc3bfd6be4e238ad8f91fcc6c646d.xml.rels
new file mode 100644
index 00000000..f9d9ae72
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/drawings/_rels/drawinga13dc3bfd6be4e238ad8f91fcc6c646d.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/drawings/_rels/drawingcea5e87afab34a1b886841980881e6a6.xml.rels b/samples/xlsx/TestIssue816_2/xl/drawings/_rels/drawingcea5e87afab34a1b886841980881e6a6.xml.rels
new file mode 100644
index 00000000..ea055178
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/drawings/_rels/drawingcea5e87afab34a1b886841980881e6a6.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/drawings/drawinga13dc3bfd6be4e238ad8f91fcc6c646d.xml b/samples/xlsx/TestIssue816_2/xl/drawings/drawinga13dc3bfd6be4e238ad8f91fcc6c646d.xml
new file mode 100644
index 00000000..9b1e2419
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/drawings/drawinga13dc3bfd6be4e238ad8f91fcc6c646d.xml
@@ -0,0 +1,119 @@
+
+
+
+ 3
+ 0
+ 2
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3
+ 0
+ 8
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3
+ 0
+ 8
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/drawings/drawingcea5e87afab34a1b886841980881e6a6.xml b/samples/xlsx/TestIssue816_2/xl/drawings/drawingcea5e87afab34a1b886841980881e6a6.xml
new file mode 100644
index 00000000..0bebe2c5
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/drawings/drawingcea5e87afab34a1b886841980881e6a6.xml
@@ -0,0 +1,119 @@
+
+
+
+ 2
+ 0
+ 2
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+ 0
+ 8
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+ 0
+ 8
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/media/image037f9747190c43eca595e57604de932c.png b/samples/xlsx/TestIssue816_2/xl/media/image037f9747190c43eca595e57604de932c.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssue816_2/xl/media/image037f9747190c43eca595e57604de932c.png differ
diff --git a/samples/xlsx/TestIssue816_2/xl/media/image3f83eec97c6c49569a75f076c2d4045a.png b/samples/xlsx/TestIssue816_2/xl/media/image3f83eec97c6c49569a75f076c2d4045a.png
new file mode 100644
index 00000000..8efaf819
Binary files /dev/null and b/samples/xlsx/TestIssue816_2/xl/media/image3f83eec97c6c49569a75f076c2d4045a.png differ
diff --git a/samples/xlsx/TestIssue816_2/xl/media/image804ac538d3674fa2abc309543b617971.png b/samples/xlsx/TestIssue816_2/xl/media/image804ac538d3674fa2abc309543b617971.png
new file mode 100644
index 00000000..8efaf819
Binary files /dev/null and b/samples/xlsx/TestIssue816_2/xl/media/image804ac538d3674fa2abc309543b617971.png differ
diff --git a/samples/xlsx/TestIssue816_2/xl/media/image8d00375faa1f4b41aa5109c3e419c964.png b/samples/xlsx/TestIssue816_2/xl/media/image8d00375faa1f4b41aa5109c3e419c964.png
new file mode 100644
index 00000000..8efaf819
Binary files /dev/null and b/samples/xlsx/TestIssue816_2/xl/media/image8d00375faa1f4b41aa5109c3e419c964.png differ
diff --git a/samples/xlsx/TestIssue816_2/xl/media/imagec4303bb6725242df941fea79b5e1296f.png b/samples/xlsx/TestIssue816_2/xl/media/imagec4303bb6725242df941fea79b5e1296f.png
new file mode 100644
index 00000000..8efaf819
Binary files /dev/null and b/samples/xlsx/TestIssue816_2/xl/media/imagec4303bb6725242df941fea79b5e1296f.png differ
diff --git a/samples/xlsx/TestIssue816_2/xl/media/imagee87f98b0db1a48898a63678d92b3660a.png b/samples/xlsx/TestIssue816_2/xl/media/imagee87f98b0db1a48898a63678d92b3660a.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssue816_2/xl/media/imagee87f98b0db1a48898a63678d92b3660a.png differ
diff --git a/samples/xlsx/TestIssue816_2/xl/sharedStrings.xml b/samples/xlsx/TestIssue816_2/xl/sharedStrings.xml
new file mode 100644
index 00000000..a74a5953
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/sharedStrings.xml
@@ -0,0 +1,2 @@
+
+Image1:Image2:
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/styles.xml b/samples/xlsx/TestIssue816_2/xl/styles.xml
new file mode 100644
index 00000000..04695051
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/theme/theme1.xml b/samples/xlsx/TestIssue816_2/xl/theme/theme1.xml
new file mode 100644
index 00000000..2c75da85
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/theme/theme1.xml
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/workbook.xml b/samples/xlsx/TestIssue816_2/xl/workbook.xml
new file mode 100644
index 00000000..2462c3ec
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/workbook.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssue816_2/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..9fc078e3
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_2/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssue816_2/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..f986fca9
--- /dev/null
+++ b/samples/xlsx/TestIssue816_2/xl/worksheets/sheet1.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3.xlsx b/samples/xlsx/TestIssue816_3.xlsx
new file mode 100644
index 00000000..52e750d1
Binary files /dev/null and b/samples/xlsx/TestIssue816_3.xlsx differ
diff --git a/samples/xlsx/TestIssue816_3/[Content_Types].xml b/samples/xlsx/TestIssue816_3/[Content_Types].xml
new file mode 100644
index 00000000..8ee982ab
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/[Content_Types].xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/_rels/.rels b/samples/xlsx/TestIssue816_3/_rels/.rels
new file mode 100644
index 00000000..74bfd8d9
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/_rels/.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/docProps/app.xml b/samples/xlsx/TestIssue816_3/docProps/app.xml
new file mode 100644
index 00000000..d5e92215
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Sheet1falsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/docProps/core.xml b/samples/xlsx/TestIssue816_3/docProps/core.xml
new file mode 100644
index 00000000..50439f08
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/docProps/core.xml
@@ -0,0 +1,2 @@
+
+Wei LinWei Lin2025-06-21T14:00:28Z2025-06-21T14:01:05Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssue816_3/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..65485f71
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/_rels/workbook.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/drawings/_rels/drawing1.xml.rels b/samples/xlsx/TestIssue816_3/xl/drawings/_rels/drawing1.xml.rels
new file mode 100644
index 00000000..9db7c50e
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/drawings/_rels/drawing1.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/drawings/drawing1.xml b/samples/xlsx/TestIssue816_3/xl/drawings/drawing1.xml
new file mode 100644
index 00000000..e68275f7
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/drawings/drawing1.xml
@@ -0,0 +1,2 @@
+
+4013016370514382800615040281132952528096
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/media/image1.png b/samples/xlsx/TestIssue816_3/xl/media/image1.png
new file mode 100644
index 00000000..e52f6c8a
Binary files /dev/null and b/samples/xlsx/TestIssue816_3/xl/media/image1.png differ
diff --git a/samples/xlsx/TestIssue816_3/xl/media/image2.png b/samples/xlsx/TestIssue816_3/xl/media/image2.png
new file mode 100644
index 00000000..66283404
Binary files /dev/null and b/samples/xlsx/TestIssue816_3/xl/media/image2.png differ
diff --git a/samples/xlsx/TestIssue816_3/xl/sharedStrings.xml b/samples/xlsx/TestIssue816_3/xl/sharedStrings.xml
new file mode 100644
index 00000000..d36ba8f0
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/sharedStrings.xml
@@ -0,0 +1,2 @@
+
+f
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/styles.xml b/samples/xlsx/TestIssue816_3/xl/styles.xml
new file mode 100644
index 00000000..659107a0
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/theme/theme1.xml b/samples/xlsx/TestIssue816_3/xl/theme/theme1.xml
new file mode 100644
index 00000000..4a95cff0
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/theme/theme1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/workbook.xml b/samples/xlsx/TestIssue816_3/xl/workbook.xml
new file mode 100644
index 00000000..6182b7c8
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/workbook.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssue816_3/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..205832e9
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_3/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssue816_3/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..cb9d4e7c
--- /dev/null
+++ b/samples/xlsx/TestIssue816_3/xl/worksheets/sheet1.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4.xlsx b/samples/xlsx/TestIssue816_4.xlsx
new file mode 100644
index 00000000..1d9aedfe
Binary files /dev/null and b/samples/xlsx/TestIssue816_4.xlsx differ
diff --git a/samples/xlsx/TestIssue816_4/[Content_Types].xml b/samples/xlsx/TestIssue816_4/[Content_Types].xml
new file mode 100644
index 00000000..ce9f84a0
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/[Content_Types].xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/_rels/.rels b/samples/xlsx/TestIssue816_4/_rels/.rels
new file mode 100644
index 00000000..22c9382f
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/_rels/.rels
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/docProps/app.xml b/samples/xlsx/TestIssue816_4/docProps/app.xml
new file mode 100644
index 00000000..d5e92215
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Sheet1falsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/docProps/core.xml b/samples/xlsx/TestIssue816_4/docProps/core.xml
new file mode 100644
index 00000000..50439f08
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/docProps/core.xml
@@ -0,0 +1,2 @@
+
+Wei LinWei Lin2025-06-21T14:00:28Z2025-06-21T14:01:05Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssue816_4/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..e7fe8ebe
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/_rels/workbook.xml.rels
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/drawings/_rels/drawing1.xml.rels b/samples/xlsx/TestIssue816_4/xl/drawings/_rels/drawing1.xml.rels
new file mode 100644
index 00000000..fad44dfe
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/drawings/_rels/drawing1.xml.rels
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/drawings/drawing1.xml b/samples/xlsx/TestIssue816_4/xl/drawings/drawing1.xml
new file mode 100644
index 00000000..bf5f98f9
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/drawings/drawing1.xml
@@ -0,0 +1,2 @@
+
+401301636195038280051504028104775252809520140 120160
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/media/image1.png b/samples/xlsx/TestIssue816_4/xl/media/image1.png
new file mode 100644
index 00000000..e52f6c8a
Binary files /dev/null and b/samples/xlsx/TestIssue816_4/xl/media/image1.png differ
diff --git a/samples/xlsx/TestIssue816_4/xl/media/image2.png b/samples/xlsx/TestIssue816_4/xl/media/image2.png
new file mode 100644
index 00000000..66283404
Binary files /dev/null and b/samples/xlsx/TestIssue816_4/xl/media/image2.png differ
diff --git a/samples/xlsx/TestIssue816_4/xl/media/image3.Png b/samples/xlsx/TestIssue816_4/xl/media/image3.Png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssue816_4/xl/media/image3.Png differ
diff --git a/samples/xlsx/TestIssue816_4/xl/sharedStrings.xml b/samples/xlsx/TestIssue816_4/xl/sharedStrings.xml
new file mode 100644
index 00000000..33295552
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/sharedStrings.xml
@@ -0,0 +1 @@
+f
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/styles.xml b/samples/xlsx/TestIssue816_4/xl/styles.xml
new file mode 100644
index 00000000..e431b21a
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/styles.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/theme/theme1.xml b/samples/xlsx/TestIssue816_4/xl/theme/theme1.xml
new file mode 100644
index 00000000..e57b14ae
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/theme/theme1.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/workbook.xml b/samples/xlsx/TestIssue816_4/xl/workbook.xml
new file mode 100644
index 00000000..61bb5488
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/workbook.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssue816_4/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..5f1e29b8
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssue816_4/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssue816_4/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..95d494b1
--- /dev/null
+++ b/samples/xlsx/TestIssue816_4/xl/worksheets/sheet1.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1.xlsx b/samples/xlsx/TestIssueICFV1I_1_41_1.xlsx
new file mode 100644
index 00000000..9c86969c
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_1.xlsx differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/[Content_Types].xml b/samples/xlsx/TestIssueICFV1I_1_41_1/[Content_Types].xml
new file mode 100644
index 00000000..7ba678e5
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/[Content_Types].xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/_rels/.rels b/samples/xlsx/TestIssueICFV1I_1_41_1/_rels/.rels
new file mode 100644
index 00000000..74bfd8d9
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/_rels/.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/docProps/app.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/docProps/app.xml
new file mode 100644
index 00000000..3db85d1a
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Demofalsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/docProps/core.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/docProps/core.xml
new file mode 100644
index 00000000..84719d57
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/docProps/core.xml
@@ -0,0 +1,2 @@
+
+WeiWei Lin2015-06-05T18:17:20Z2025-04-20T14:24:59Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..65485f71
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/_rels/workbook.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/drawings/_rels/drawing98482106b774449083d3adfa462f1707.xml.rels b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/drawings/_rels/drawing98482106b774449083d3adfa462f1707.xml.rels
new file mode 100644
index 00000000..dec5e486
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/drawings/_rels/drawing98482106b774449083d3adfa462f1707.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/drawings/drawing98482106b774449083d3adfa462f1707.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/drawings/drawing98482106b774449083d3adfa462f1707.xml
new file mode 100644
index 00000000..209cc8b1
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/drawings/drawing98482106b774449083d3adfa462f1707.xml
@@ -0,0 +1,114 @@
+
+
+
+
+ 2
+ 0
+ 2
+ 0
+
+
+ 3
+ 0
+ 3
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+ 0
+ 8
+ 0
+
+
+ 3
+ 4762500
+ 9
+ 4762500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7
+ 0
+ 8
+ 0
+
+ 8
+ 476250
+ 9
+ 476250
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/image8d8065829ab5449aa3b52723e51a7b20.png b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/image8d8065829ab5449aa3b52723e51a7b20.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/image8d8065829ab5449aa3b52723e51a7b20.png differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/image9f62c0e5edfb4a4fb4df39966f9e930f.png b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/image9f62c0e5edfb4a4fb4df39966f9e930f.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/image9f62c0e5edfb4a4fb4df39966f9e930f.png differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/imagea8f3b74b2f8041e9ae2cad406188704c.png b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/imagea8f3b74b2f8041e9ae2cad406188704c.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/media/imagea8f3b74b2f8041e9ae2cad406188704c.png differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/sharedStrings.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/sharedStrings.xml
new file mode 100644
index 00000000..a74a5953
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/sharedStrings.xml
@@ -0,0 +1,2 @@
+
+Image1:Image2:
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/styles.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/styles.xml
new file mode 100644
index 00000000..04695051
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/theme/theme1.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/theme/theme1.xml
new file mode 100644
index 00000000..f82d9ebb
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/theme/theme1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/workbook.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/workbook.xml
new file mode 100644
index 00000000..2a833c3d
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/workbook.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..194fc9f1
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_1/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..0d58db40
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_1/xl/worksheets/sheet1.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2.xlsx b/samples/xlsx/TestIssueICFV1I_1_41_2.xlsx
new file mode 100644
index 00000000..41c44144
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_2.xlsx differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/[Content_Types].xml b/samples/xlsx/TestIssueICFV1I_1_41_2/[Content_Types].xml
new file mode 100644
index 00000000..5cf7020b
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/[Content_Types].xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/_rels/.rels b/samples/xlsx/TestIssueICFV1I_1_41_2/_rels/.rels
new file mode 100644
index 00000000..74bfd8d9
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/_rels/.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/docProps/app.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/docProps/app.xml
new file mode 100644
index 00000000..3db85d1a
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/docProps/app.xml
@@ -0,0 +1,2 @@
+
+Microsoft Excel0falseWorksheets1Demofalsefalsefalse16.0300
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/docProps/core.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/docProps/core.xml
new file mode 100644
index 00000000..84719d57
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/docProps/core.xml
@@ -0,0 +1,2 @@
+
+WeiWei Lin2015-06-05T18:17:20Z2025-04-20T14:24:59Z
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/_rels/workbook.xml.rels b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/_rels/workbook.xml.rels
new file mode 100644
index 00000000..65485f71
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/_rels/workbook.xml.rels
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/drawings/_rels/drawing2605be385d194157a1ed844bf85a6825.xml.rels b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/drawings/_rels/drawing2605be385d194157a1ed844bf85a6825.xml.rels
new file mode 100644
index 00000000..9b97e377
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/drawings/_rels/drawing2605be385d194157a1ed844bf85a6825.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/drawings/drawing2605be385d194157a1ed844bf85a6825.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/drawings/drawing2605be385d194157a1ed844bf85a6825.xml
new file mode 100644
index 00000000..005072ef
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/drawings/drawing2605be385d194157a1ed844bf85a6825.xml
@@ -0,0 +1,114 @@
+
+
+
+
+ 2
+ 0
+ 2
+ 0
+
+
+ 3
+ 0
+ 3
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+ 0
+ 8
+ 0
+
+
+ 3
+ 4762500
+ 9
+ 4762500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 7
+ 0
+ 8
+ 0
+
+ 8
+ 476250
+ 9
+ 476250
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/image6c041a7f44094767b6c8f3d48a6f6a1f.png b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/image6c041a7f44094767b6c8f3d48a6f6a1f.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/image6c041a7f44094767b6c8f3d48a6f6a1f.png differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/imagec8cb923a01634a9489b256bae76a61b2.png b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/imagec8cb923a01634a9489b256bae76a61b2.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/imagec8cb923a01634a9489b256bae76a61b2.png differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/imagef69f64bf01fc457985842f20542262c5.png b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/imagef69f64bf01fc457985842f20542262c5.png
new file mode 100644
index 00000000..fe3479dd
Binary files /dev/null and b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/media/imagef69f64bf01fc457985842f20542262c5.png differ
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/sharedStrings.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/sharedStrings.xml
new file mode 100644
index 00000000..a74a5953
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/sharedStrings.xml
@@ -0,0 +1,2 @@
+
+Image1:Image2:
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/styles.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/styles.xml
new file mode 100644
index 00000000..04695051
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/styles.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/theme/theme1.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/theme/theme1.xml
new file mode 100644
index 00000000..f82d9ebb
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/theme/theme1.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/workbook.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/workbook.xml
new file mode 100644
index 00000000..2a833c3d
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/workbook.xml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/worksheets/_rels/sheet1.xml.rels b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/worksheets/_rels/sheet1.xml.rels
new file mode 100644
index 00000000..2891bcc5
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/worksheets/_rels/sheet1.xml.rels
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/samples/xlsx/TestIssueICFV1I_1_41_2/xl/worksheets/sheet1.xml b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/worksheets/sheet1.xml
new file mode 100644
index 00000000..a9ca2b84
--- /dev/null
+++ b/samples/xlsx/TestIssueICFV1I_1_41_2/xl/worksheets/sheet1.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+
\ No newline at end of file
diff --git a/src/MiniExcel/Attributes/ExcelColumnAttribute.cs b/src/MiniExcel/Attributes/ExcelColumnAttribute.cs
index 36211b8f..3ce2977e 100644
--- a/src/MiniExcel/Attributes/ExcelColumnAttribute.cs
+++ b/src/MiniExcel/Attributes/ExcelColumnAttribute.cs
@@ -1,57 +1,54 @@
-using MiniExcelLibs.Utils;
-using System;
+using System;
+using MiniExcelLibs.Utils;
-namespace MiniExcelLibs.Attributes
+namespace MiniExcelLibs.Attributes;
+
+[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
+public class ExcelColumnAttribute : Attribute
{
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)]
- public class ExcelColumnAttribute : Attribute
+ private int _index = -1;
+ private string? _xName;
+
+ internal int FormatId { get; set; } = -1;
+
+ public string? Name { get; set; }
+ public string[]? Aliases { get; set; } = [];
+ public double Width { get; set; } = 9.28515625;
+ public string? Format { get; set; }
+ public bool Ignore { get; set; }
+ public ColumnType Type { get; set; } = ColumnType.Value;
+
+ public int Index
{
- private int _index = -1;
- private string _xName;
-
- internal int FormatId { get; set; } = -1;
-
- public string Name { get; set; }
- public string[] Aliases { get; set; }
- public double Width { get; set; } = 9.28515625;
- public string Format { get; set; }
- public bool Ignore { get; set; }
- public ColumnType Type { get; set; } = ColumnType.Value;
-
- public int Index
- {
- get => _index;
- set => Init(value);
- }
-
- public string IndexName
- {
- get => _xName;
- set => Init(ColumnHelper.GetColumnIndex(value), value);
- }
-
- private void Init(int index, string columnName = null)
- {
- if (index < 0)
- throw new ArgumentOutOfRangeException(nameof(index), index, $"Column index {index} must be greater or equal to zero.");
-
- if (_xName == null)
- _xName = columnName ?? ColumnHelper.GetAlphabetColumnName(index);
-
- _index = index;
- }
+ get => _index;
+ set => Init(value);
}
- public enum ColumnType { Value, Formula }
+ public string? IndexName
+ {
+ get => _xName;
+ set => Init(ColumnHelper.GetColumnIndex(value), value);
+ }
- public class DynamicExcelColumn : ExcelColumnAttribute
+ private void Init(int index, string? columnName = null)
{
- public string Key { get; set; }
- public Func