Aspose.cells使用Smart Markers的时候field name含有特殊字符.和/怎么处理?

比如
&=dt.[test.]
&=dt.[a/b]
这两个都填充不了值

@0522515321,

我测试了你的场景/案例,是的,你是对的。 如果列名称包含特殊字符,则不会处理智能标记来填充数据。 为了应对您的情况或解决它,您可以尝试使用 Worksheet.Cells.ImportData() 方法将所需的数据源导入到电子表格中。 请参阅以下示例代码,经我测试,该代码运行良好:
例如。,
示例代码:

var dt = new DataTable("dt");
dt.Columns.Add("[test.]", typeof(string));
dt.Columns.Add("[a/b]", typeof(string));
            
dt.Rows.Add(new object[] { "a", "b" });
dt.Rows.Add(new object[] { "10", "20" });

Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Cells.ImportData(dt, 0, 0, new ImportTableOptions() { IsFieldNameShown = true });
workbook.Save("g:\\test2\\out1.xlsx");

希望这个对你有帮助。

谢谢,这也是一种解决方式
还是希望aspose能解决这个问题。

@0522515321,

我已经测试并发现了使用以下代码时所描述的问题。 我发现当智能标记字段名称包含特殊字符时,数据不会填充到工作表单元格中。 这似乎是智能标记的限制(关于字段名称),但我们将检查当数据源来自数据表而不是来自自定义类/对象属性时是否可以支持它。

var dt = new DataTable("dt");
dt.Columns.Add("[test.]", typeof(string));
dt.Columns.Add("[a/b]", typeof(string));

dt.Rows.Add(new object[] { "a", "b" });
dt.Rows.Add(new object[] { "10", "20" });

Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
worksheet.Cells["A1"].PutValue("&=dt.[test.]");
worksheet.Cells["B1"].PutValue("&=dt.[a/b]");

WorkbookDesigner wd = new WorkbookDesigner();
wd.Workbook = workbook;
wd.SetDataSource(dt);            
wd.Process(true);

workbook.Save("g:\\test2\\out1.xlsx");

我们已在内部问题跟踪系统中打开以下新票证,并将根据免费支持政策中提到的条款提供修复。
问题 ID:CELLSNET-53816。

@0522515321,

我们很高兴地通知您,您的问题(之前记录为“CELLSNET-53816”)已得到解决。 该修复将包含在我们计划于 2023 年 8 月上半月发布的即将发布的版本 (Aspose.Cells v23.8) 中。下一个版本发布时,您将收到通知。

敬请关注!

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