我已经有了一些问题加入一个excel文件作为附件的一个定义清单。我做了一个eventreceiver其收集数据,从其他清单,并把数据并入一个excel文件。

什么我试着做正确的问题:

  • 测试CreateContentRow(索引项目)在一个单独的控制台应用程序(工作)
  • 检查,如果有什么不对获取信息的其他清单(工作)
  • 试图保存一个文件图书馆(该文件被保存没有的内容)
  • 试图打开的阅读和文件本身如果有什么问题与xml(没有定义xml加的)。

代码工作得很好,但是文件保存,但这是完全相同的模板,没有内容的增加。

using (var memory = new MemoryStream())
                {

                    var binary = template.OpenBinary();
                    memory.Write(binary, 0, binary.Length);

                    using (var document = SpreadsheetDocument.Open(memory, true))
                    {
                        var workbookPart = document.WorkbookPart;

                        var worksheetparts = workbookPart.WorksheetParts;

                        var worksheetpart = worksheetparts.FirstOrDefault();

                        var sheetData = worksheetpart.Worksheet.GetFirstChild<SheetData>();

                        var index = 2;
                        foreach (var item in items)
                        {
                            var row = CreateContentRow(index, item);
                            index++;

                            sheetData.AppendChild(row);
                        }
                        properties.ListItem.Attachments.Add("name" + string.Format("{0:yyyy-MM-dd_HHmmss}", DateTime.Now) + ".xlsx", memory.ToArray());
                        properties.ListItem.Update();
                    }
                }

我用同样的方法在另一个列表那里我产生。word文档在那里,它工作得很好。是有很大的差别在我应该如何保存的文件的根据,如果其。您或.尝试?

当我试的细胞和行添加到sheetdata,但它没有得到保存。任何想法,如何解决这个问题?

有帮助吗?

解决方案

为了获得保存的内容,我需要增加节省的发言。

wspart.Worksheet.Save();
document.WorkbookPart.Workbook.Save();

当我加了在线上之前添加attachemnt一切工作,因为这是应该的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top