我在这里使用EPPlus创建一些.XLSX文件有一个奇怪的问题.我正在创建一个包,然后输出到响应.
我创建了一个包如下:
var file = new FileInfo(@"C:\Test.xlsx");
ExcelPackage package = new ExcelPackage(file);
//...code to output data...//
package.Save();
Run Code Online (Sandbox Code Playgroud)
这会将文件正确保存到我的本地C:驱动器,当我打开它时效果很好.没有错误或任何东西,格式是正确的等等.
但是,我现在希望将此文件输出到响应流,所以我修改了代码,我必须看起来像这样:
ExcelPackage package = new ExcelPackage();
//...code to output data...//
MemoryStream result = new MemoryStream();
package.SaveAs(result);
context.Response.Clear();
context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
context.Response.AddHeader("Content-Disposition", "attachment;filename=MissionDetails.xlsx");
result.WriteTo(context.Response.OutputStream);
context.Response.End();
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,我在尝试打开Excel文件时收到以下提示:
Excel在filename.xlsx中找到了不可读的内容.你想恢复这个工作簿的内容吗?如果您信任此工作簿的来源,请单击"是"
单击是然后显示以下提示:
使用Microsoft Excel无法打开此文件.是否要在Microsoft Office Online网站上搜索可以打开该文件的转换器?
我选择No此处然后打开Excel文件并显示以下错误:
Excel完成了文件级验证和修复.本工作簿的某些部分可能已被修复或丢弃.
但该文件,然后加载罚款,似乎是正确的,一切都格式化.但每次我尝试打开文件时,它都会提供相同的提示和错误消息.
注意:输出数据的代码在这些方案中都不会更改.
有没有人见过这样的东西?或者知道什么可能导致这个只在输出到响应时错误地保存文件?
有没有一种简单的方法可以计算出 .gif 图像在 Javascript 中播放一次大约需要多长时间?
我正在尝试找出完成以下任务的最佳查询。
我有 2 个与 ID 列相关的表。
表格1
ID
UserID
Run Code Online (Sandbox Code Playgroud)
表2
ID
SomeDataColumn
Run Code Online (Sandbox Code Playgroud)
我需要做的是从Table1我的UserID='5'或某个号码中选择一个 ID 列表。这应该返回具有各自 ID 的多行。然后我需要Table2从我返回的 ID 列表中删除包含任何 ID 的所有行Table1。
我能弄清楚如何做到这一点的唯一方法是从我的第一个表中选择所有行,将它们放在一个游标中,然后遍历每个行,为每个 ID 运行一个删除查询。但似乎必须有一种更有效的方法来使用 join 或其他方法来做到这一点。
有任何想法吗?谢谢大家!
animated-gif ×1
asp.net ×1
c# ×1
epplus ×1
excel ×1
gif ×1
image ×1
javascript ×1
sql-server ×1
t-sql ×1