C# 使用OpenXMLC将行追加到excel文档的末尾#
我需要使用OpenXmlSDK将行附加到xls/xlsx文档的末尾 有一个问题,但建议的方法是在内存中分配整个工作表,这会使我的案例内存不足 我跟着,但它也会产生内存不足 是否有方法将C# 使用OpenXMLC将行追加到excel文档的末尾#,c#,excel,openxml-sdk,C#,Excel,Openxml Sdk,我需要使用OpenXmlSDK将行附加到xls/xlsx文档的末尾 有一个问题,但建议的方法是在内存中分配整个工作表,这会使我的案例内存不足 我跟着,但它也会产生内存不足 是否有方法将xlsx文件添加到append?我在OpenXmlWriter中没有找到这样的选项 private static void OpenXMLSDKAppendRows(string fileName, int numRows, int numCols) { { us
xlsx
文件添加到append?我在OpenXmlWriter
中没有找到这样的选项
private static void OpenXMLSDKAppendRows(string fileName, int numRows, int numCols)
{
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, true))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
using (OpenXmlWriter openXmlWriter = OpenXmlWriter.Create(worksheetPart))
{
Row row = new Row();
Cell cell = new Cell();
CellValue value = new CellValue("Test");
cell.AppendChild(value);
openXmlWriter.WriteStartElement(new Worksheet());
openXmlWriter.WriteStartElement(new SheetData());
for (int rowIndex = 0; rowIndex < numRows; rowIndex++)
{
openXmlWriter.WriteStartElement(row);
for (int colIndex = 0; colIndex < numCols; colIndex++)
{
openXmlWriter.WriteElement(cell);
}
openXmlWriter.WriteEndElement();
}
openXmlWriter.WriteEndElement();
openXmlWriter.WriteEndElement();
openXmlWriter.Close();
}
}
}
}
private static void OpenXMLSDKAppendRows(字符串文件名,int numRows,int numCols)
{
{
使用(SpreadsheetDocument SpreadsheetDocument=SpreadsheetDocument.Open(文件名,true))
{
WorkbookPart WorkbookPart=电子表格文档.WorkbookPart;
WorksheetPart WorksheetPart=workbookPart.WorksheetParts.First();
使用(OpenXmlWriter OpenXmlWriter=OpenXmlWriter.Create(工作表部分))
{
行=新行();
单元格=新单元格();
CellValue=新的CellValue(“测试”);
单元格.AppendChild(值);
WriteStarteElement(新工作表());
WriteStarteElement(新的SheetData());
对于(int-rowIndex=0;rowIndex
由于LGPL许可证,我无法使用
EPPlus
引发异常的原因是您试图追加的数据量太大还是原始文件太大?当代码在一个只有几行要添加的小文件上运行时,是否会抛出该代码?@lukasz-m该特定代码段会抛出内存。OpenXmlReader在内存中分配大量数据。我需要一种.Net StreamWriter拥有的追加解决方案。由于您试图追加的数据量太大或原始文件太大,因此引发了什么异常?当代码在一个只有几行要添加的小文件上运行时,是否会抛出该代码?@lukasz-m该特定代码段会抛出内存。OpenXmlReader在内存中分配大量数据。我需要.Net StreamWriter提供的附加解决方案