EPPlus excel工作表中带有脚本文本的单元格

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

我们有一个批量插入电子表格模板,允许用户定义在线广告的某些组件。 然后,他们上传文件,我们处理它,并将其设置在数据库中。

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

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

有没有办法(安全地)做这项工作,而不需要改变下载的安全设置?

我没有时间检查到这一点,但如果将工作簿保存为macros工作簿,以便在工作簿中启用一些不太安全的行为? 另一件事可能是在单元格的开头部分用单引号转义内容,或者用引号将整个“脚本”内容包裹起来。

你期望在野外遇到什么版本的excel? 我使用Excel 2013testing了这个function,并能够将以下内容保存到工作簿中,并使用EPP Plus 4.1.0.0将其parsing为数据表:

  <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>" 

工作簿解析到数据表

没有什么奇特的,只是迭代工作簿中的每个单元格,拉入值并转换为string:

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