错误消息“在更新模式下无法多次打开条目。” 在 Spreadsheet Lite SaveAs 函数中

Dou*_*zey 5 spreadsheetlight .net-core

执行dBWorksheet.SaveAs(xlsFileSpec)下面的代码时,我看到一个异常:

“在更新模式下无法多次打开条目。”

        SLDocument dBWorksheet = new SLDocument();
        TimeSpan interval = new TimeSpan(0, 0, 2);

        dBWorksheet.SetCellValue(2, 1, "Hour");
        dBWorksheet.SetCellValue(3, 1, "Time");

        int Row = 3;

        // Create the hour and time of day columns.
        for(TimeSpan dBTime = new TimeSpan(0, 0, 0); dBTime.TotalHours < 24; dBTime = dBTime.Add(interval)) 
        {
            dBWorksheet.SetCellValue(Row, 1, dBTime.Hours);
            dBWorksheet.SetCellValue(Row, 2, dBTime.ToString());

            Row++;
        }

        // Save the new worksheet.
        dBWorksheet.SaveAs(xlsFileSpec);
Run Code Online (Sandbox Code Playgroud)

小智 2

我是这样解决的。

  1. 下载 SpreadsheetLight(版本 3.5)的源代码。 http://spreadsheetlight.com/downloads/SpreadsheetLight3.5.zip

  2. 创建了一个名为“SpreadsheetLight”的 .NET Core 库项目,并向其中添加了必要的 NuGet 包(DocumentFormat.OpenXML 和 System.Drawing.Common)。将所有下载的源代码文件复制并粘贴到该项目中。

  3. 将项目“SpreadsheetLight”添加到我的解决方案中,并在现有项目之一中引用它。

  4. 在“SLDocument.cs”文件中,对方法“LoadDocumentProperties()”进行以下更改,使代码如下所示:

// XDocument xdoc = XDocument.Load(XmlReader.Create(xl.CoreFilePropertiesPart.GetStream()));
        
Stream stream = xl.CoreFilePropertiesPart.GetStream();
XDocument xdoc = XDocument.Load(XmlReader.Create(stream));
        
foreach (XElement xelem in xdoc.Descendants())
{
    // Code omitted.
}
        
stream.Close();
Run Code Online (Sandbox Code Playgroud)
  1. 构建您的解决方案并进行测试。

  • @mababin 我们有新的 nuget 包,其中包含这些更改。- SpreadsheetLight.Cross.Platform 3.5.1 (2认同)