У меня есть ASP.Net
сайт. Следующим является мой метод записи потока в excel.Индекс находился за пределами массива при экспорте данных в excel в C#
public void JsonToExcel(string jsonData, HttpResponseBase response)
{
try
{
ExcelPackage excel = new ExcelPackage();
var worksheet = excel.Workbook.Worksheets.Add("Sheet1");
//below line is throwing the error
worksheet.Cells[1, 1].LoadFromCollection(jsonData, true);
using (MemoryStream swObj = new MemoryStream())
{
string fileName = DateTime.Now.ToLongDateString() + ".xlsx";
response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
response.AddHeader("content-disposition", "attachment; filename=" + fileName + "");
excel.SaveAs(swObj);
swObj.WriteTo(response.OutputStream);
return;
}
}
catch (Exception ex)
{
//handle exception
return;
}
finally
{
response.Flush();
response.End();
}
В этой строке функции - worksheet.Cells[1, 1].LoadFromCollection(jsonData, true);
я получаю следующее исключение
Индекс находился вне границ массива
Я попытался установить в worksheet.Cells[0,0]
Я использую EPPlus 4.1.0 упаковка.
JSON Пример: -
string jsonData = @"jsonData = [
{
""DocumentName"": ""Test Document"",
""ActionDate"": ""2015-09-25T16:06:25.083"",
""ActionType"": ""View"",
""ActionPerformedBy"": ""Sreeja SJ""
},
{
""DocumentName"": ""Test Document"",
""ActionDate"": ""2015-09-25T16:12:02.497"",
""ActionType"": ""View"",
""ActionPerformedBy"": ""Sreeja SJ""
},
{
""DocumentName"": ""Test Document"",
""ActionDate"": ""2015-09-25T16:13:48.013"",
""ActionType"": ""View"",
""ActionPerformedBy"": ""Sreeja SJ""
}]";
Одна из проблем с работой с excel заключается в том, что ячейки не являются zer o, вам лучше использовать закрытый XML, который можно найти здесь https://closedxml.codeplex.com/ –
Можете ли вы отправить образец данных JSON и ожидаемое преобразование Excel? –
@SouvikGhosh. Я разместил образец JSON –