Aspose.cells替换excel中非文本单元格,无法替换成功

如题所示,我在excel中添加了一个日期格式的单元格,我执行替换的时候发现并无法替换;当我将单元格格式更改为文本格式以后,就可以正常替换了。

这是我的代码,其中某些参数就不贴了,这个就是官方给的例子照着写的:

 Aspose.Cells.Workbook TempExcelDocument = new Aspose.Cells.Workbook(DocumentsFileName);
 Aspose.Cells.ReplaceOptions TempExcelReplaceOptions = new Aspose.Cells.ReplaceOptions();
 Aspose.Cells.OoxmlSaveOptions TempXlsxSaveOption = new OoxmlSaveOptions();
 TempExcelReplaceOptions.MatchEntireCellContents = false;
 TempExcelReplaceOptions.CaseSensitive = NoIgnoreCase;
 TempExcelReplaceOptions.RegexKey = UseRegex;
 
 //FindOptions TempCellsFindOption = new FindOptions();

 //TempCellsFindOption.LookInType = LookInType.ValuesExcludeFormulaCell;

 //Aspose.Cells.Cells Cells = TempExcelDocument.Worksheets[0].Cells;

 if (InputRegexRule != string.Empty)
 {
     TempExcelDocument.Replace(InputRegexRule, ReplaceContent, TempExcelReplaceOptions);
 }

执行的替换内容是,将2024/1替换为2024/2,并没有替换成功。

下方是excel附件,请帮忙看下是代码写的有问题,还是其他的原因?

1.zip (12.9 KB)

@jidesheng
通过使用Aspose.Cells v24.2进行测试,我们能够得到正确的结果。请查看附件。out.zip (8.2 KB)

样例代码如下:

Aspose.Cells.Workbook TempExcelDocument = new Aspose.Cells.Workbook(filePath + "2024.01.01 测试文件 Excel2016生成.xlsx");
Aspose.Cells.ReplaceOptions TempExcelReplaceOptions = new Aspose.Cells.ReplaceOptions();
Aspose.Cells.OoxmlSaveOptions TempXlsxSaveOption = new OoxmlSaveOptions();
TempExcelReplaceOptions.MatchEntireCellContents = false;
TempExcelReplaceOptions.CaseSensitive = false;
TempExcelReplaceOptions.RegexKey = false;

TempExcelDocument.Replace("2024/1", "2024/2", TempExcelReplaceOptions);

TempExcelDocument.Save(filePath + "out.xlsx");

如果你依然有疑问或者困惑,请提供可执行的样例代码和结果。我们很快就会检查。

2024.01.02 测试文件 Excel2016生成.xlsx 这个文件呢?

里面的格式确实是日期格式,我尝试了没有替换成功。

@jidesheng
通过使用“2024.01.02 测试文件 Excel2016生成.xlsx ”文件进行测试,我们能够复现问题。发现不能正确替换日期格式文本。

样例代码如下:

Aspose.Cells.Workbook TempExcelDocument = new Aspose.Cells.Workbook(filePath + "2024.01.02 测试文件 Excel2016生成.xlsx");
Aspose.Cells.ReplaceOptions TempExcelReplaceOptions = new Aspose.Cells.ReplaceOptions();
Aspose.Cells.OoxmlSaveOptions TempXlsxSaveOption = new OoxmlSaveOptions();
TempExcelReplaceOptions.MatchEntireCellContents = false;
TempExcelReplaceOptions.CaseSensitive = false;
TempExcelReplaceOptions.RegexKey = false;

TempExcelDocument.Replace("2/2024", "3/2025", TempExcelReplaceOptions);

TempExcelDocument.Save(filePath + "out2.xlsx");

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

问题单号:CELLSNET-55184

好的,谢谢,可能不止日期格式有问题,应该是replace只能替换文本,其他值我没有测试过。

@jidesheng
感谢你的反馈。我们会做全面的测试。一旦有更新,我们将即时通知你。

The issues you have found earlier (filed as CELLSNET-55184) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi