我尝试使用SpreadsheetGear保存带有一些数据的工作簿.Below就是代码。
public class ExcelExporter
{
public void Export(System.IO.Stream stream, IEnumerable<LabDataEntity> readings)
{
using (stream)
{
var workset = SpreadsheetGear.Factory.GetWorkbookSet();
var workBook = workset.Workbooks.Add();
var errorWorkSheet = workBook.Worksheets.Add();
errorWorkSheet.Name = "File Errors";
SpreadsheetGear.IRange errorCells = errorWorkSheet.Cells;
errorWorkSheet.Cells.ShrinkToFit = true;
errorCells[0, 1].Value = "DCP ID";
errorCells[0, 2].Value = "DCP Name";
errorCells[0, 3].Value = "Site ID";
errorCells[0, 4].Value = "Site Name";
int i = 1;
foreach (var rdg in readings)
{
errorCells[i, 0].Value = rdg.DCPCode;
errorCells[i, 1].Value = rdg.DCPName;
errorCells[i, 2].Value = rdg.SiteID;
errorCells[i, 3].Value = rdg.SiteName;
i++;
}
workBook.SaveToStream(stream,SpreadsheetGear.FileFormat.OpenXMLWorkbook);
}
}
}
然后在尝试将工作簿保存到流(workbook.SaveToStream())时出现错误。
我知道这个问题在代码之前和之后被问到system.web部分的web.config,但仍然出错。
<httpRuntime executionTimeout="90" maxRequestLength="20000" useFullyQualifiedRedirectUrl="false"
requestLengthDiskThreshold="8192"/>
非常感谢任何帮助。
答案 0 :(得分:0)
根据您在评论中所说的内容。我确信在调用相关方法之前你正在处理流。
因此,您应该检查方法调用之前的代码,确保在调用方法之前它不会处理或关闭流。
有关处置的更多信息:https://www.dotnetperls.com/using