EPPlus excel sheet 单元格中有脚本文本

EPPlus excel sheet with script text in a cell

我遇到了一个问题,我不确定是否有好的答案。

我们有一个批量插入传播sheet 模板,允许人们定义在线广告的某些组件。然后他们上传文档,我们对其进行处理,并在数据库中进行设置。

最近有一个将批量插入更改为批量编辑的功能请求; IOW,人们将下载一个 excel sheet,其中包含有关在 sheet 字段中预填充的当前广告的信息。他们会作为一组进行更改,然后重新上传,我们会处理更改并更新数据库。

问题是,其中一条信息是带有 <script> 标签的 HTML 片段,似乎 Excel 几乎自动删除了它,因此该列下拉 sheet 时永远不会被填充。在某种程度上,这是有道理的;它类似于可执行代码,在某些情况下可能是严重的病毒威胁,但即使我将列指定为纯文本(使用 EPPlus 中的 Style.NumberFormat = "@"),Excel 也只会使整个数据消失离开。它还会扭曲列,看起来...将后续单元格向左移动一个单元格。

有没有什么方法可以(安全地)完成这项工作而不需要更改下载程序的安全设置?

我没有时间检查这个,但是如果您将工作簿保存为宏工作簿,以在工作簿中启用一些不太安全的行为会怎样? 另一件事可能是在单元格的开头用单引号 ' 转义内容,或者用引号将整个 "script" 内容包起来。

你希望在野外遇到什么版本的excel?我用 Excel 2013 对此进行了测试,并能够将以下内容保存到工作簿中,并使用 EPP Plus 4.1.0.0 将其解析为数据表:

    <script type="text/javascript">$(document).ready(function() {var I =0; console.info(I+100);});</script>

    '<script type="text/javascript">$(document).ready(function() {var I =0; console.info(I+100);});</script>

    "<script type='text/javascript'>$(document).ready(function() {var I =0; console.info(I+100);});</script>"

没什么特别的,只是迭代工作簿中的每个单元格,提取值并转换为字符串:

    object obj = Worksheets[WorkSheetIndex].Cells[k, l].Value;