Search code examples
excelopenxmlmalformedclosedxml

ClosedXML generating malformatted xlsx


Can't seem to output a good file with ClosedXML, when I open the file I'm getting

We found a problem with some content in 'filename.xlsx' Do you want us to recover as much as we can? If you trust the source of this workbook, click Yes.

using (var workbook = new XLWorkbook())
{
    var worksheet = workbook.AddWorksheet("name");
    worksheet.Row(1).Cell(i + 1).SetValue("test");
    worksheet.Row(k + 2).Cell(column.Order + 1).SetValue("test value");
    using (var memoryStream = new MemoryStream())
    {
        workbook.SaveAs(memoryStream);
        memoryStream.Seek(0, SeekOrigin.Begin);
        return memoryStream.GetBuffer();
    }
}

Solution

  • It was either using ToArray() instead of GetBuffer() that fixed the problem. Cheers

    using (var workbook = new XLWorkbook())
    {
        var worksheet = workbook.AddWorksheet("name");
        worksheet.Row(1).Cell(i + 1).SetValue("test");
        worksheet.Row(k + 2).Cell(column.Order + 1).SetValue("test value");
        using (var memoryStream = new MemoryStream())
        {
            workbook.SaveAs(memoryStream);
            memoryStream.Position = 0;
            return memoryStream.ToArray();
        }
    }