使用OpenXML读取现有文件并向其中添加一些数据行,然后将其作为字节返回以下载表单

问题描述

public static byte[] AddDataToPredifinedFormat(string path,string sheetName = "")
{
    byte[] fileBytes = null;
    var employee = new List<Employee>
                {
                    new Employee{Name = "XYZ",Number = "12345"},new Employee{Name = "ABC",Number = "12345"}
                };
    try
    {
        using (MemoryStream ms = new MemoryStream())
        {
            using (SpreadsheetDocument document = SpreadsheetDocument.Open(ms,false))
            {
                WorkbookPart wbPart = document.WorkbookPart;
                IEnumerable<Sheet> sheets = wbPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>();
                string sheetId = sheetName != "" ? sheets.Where(q => q.Name == sheetName).First().Id.Value : sheets.First().Id.Value;
                WorksheetPart wsPart = (WorksheetPart)wbPart.GetPartById(sheetId);
                SheetData sheetData = wsPart.Worksheet.GetFirstChild<SheetData>();
                foreach (var x in employee)
                {
                    Row newRow = new Row();
                    Cell cell = new Cell();
                    cell.CellValue = new CellValue(x.Name.ToString());
                    cell.StyleIndex = 0;
                    newRow.AppendChild(cell);
                    sheetData.AppendChild(newRow);
                }
                wbPart.Workbook.Save(ms);
                fileBytes = ms.ToArray();
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    return fileBytes;
}

读取现有文件并追加行,但是在下载文件时,Excel应用程序显示该文件已损坏。 使用OpenXML读取现有文件并向其中添加一些数据行,然后将其作为字节返回以下载表单

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)