EPPlus excel表格,单元格中包含脚本文本

时间:2017-12-11 19:36:45

标签: c# excel epplus

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

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

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

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

有没有办法(安全地)完成这项工作而无需更改下载程序的安全设置?

1 个答案:

答案 0 :(得分:2)

我没有时间检查这个,但如果您将工作簿保存为宏工作簿,如何在工作簿中启用一些不太安全的行为会怎么样? 另一件事可能是用单引号来逃避内容。在单元格的开头,或包装整个&#34;脚本&#34;带引号的内容。

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

@propterty

Workbook Parsed to DataTable

没什么好看的,只是迭代工作簿中的每个单元格,拉入值并转换为字符串:

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