如题所示,我在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)
John.He
February 22, 2024, 8:23am
2
@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 这个文件呢?
里面的格式确实是日期格式,我尝试了没有替换成功。
John.He
February 22, 2024, 12:16pm
4
@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只能替换文本,其他值我没有测试过。
John.He
February 22, 2024, 1:18pm
6
@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