當ods檔超過65535列時,如有空白欄位會造成後面欄位的內容錯亂

讀取ods後,將資料轉成datatable,在65535行後第5行的內容跑到第3行
ods65535bug.png (95.6 KB)

測試的ods檔
ods65535test.zip (72.5 KB)

@aleck1119

請提供更多信息,例如您使用的代碼片段以及如何讀取ods文件的具體步驟。

使用c#語言

        string inputFilePath;
        OpenFileDialog dialog = new OpenFileDialog();
        dialog.Title = "Select file";
        dialog.InitialDirectory = ".\\";
        dialog.Filter = "ods files (*.*)|*.ods";
        if (dialog.ShowDialog() == DialogResult.OK)
        {
            inputFilePath = dialog.FileName;
            try
            {
                Workbook workbook = new Workbook(inputFilePath);
                int wbsheetscount = workbook.Worksheets.Count;
                for (int sheetscount = 0; sheetscount < wbsheetscount; sheetscount++)
                {
                    Worksheet sheet = workbook.Worksheets[sheetscount];
                    int rowcount = sheet.Cells.MaxDisplayRange.RowCount;
                    int colcount = sheet.Cells.MaxDisplayRange.ColumnCount;
                    DataTable dataTable = sheet.Cells.ExportDataTable(0, 0, rowcount, colcount, false);
                    dataTable.TableName = sheet.Name;
                }
            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.ToString());
            }
        }

@aleck1119
通过使用样例文件和以下样例代码在最新版本v24.12上进行测试,我们可以复现问题。发现当导出数据到DataTable时,数据出现错乱。

Workbook workbook = new Workbook(filePath + "ods65535test.ods");
int wbsheetscount = workbook.Worksheets.Count;
for (int sheetscount = 0; sheetscount < wbsheetscount; sheetscount++)
{
    Worksheet sheet = workbook.Worksheets[sheetscount];
    int rowcount = sheet.Cells.MaxDisplayRange.RowCount;
    int colcount = sheet.Cells.MaxDisplayRange.ColumnCount;
    DataTable dataTable = sheet.Cells.ExportDataTable(0, 0, rowcount, colcount, false);
    dataTable.TableName = sheet.Name;
}

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号:CELLSNET-57540
1 Like

@aleck1119,

我们很高兴地通知您,您的问题(票号:“CELLSNET-57540”)已得到解决。增强功能/修复将包含在计划于 2025 年 1 月初发布的下一版本(Aspose.Cells v25.1)中。新版本发布时,我们会通知您。

太感謝了,這麼快就解決了這個問題。

@aleck1119,

不用客气。一旦有新版本推出,我们将及时向您通报更新。