gpt4 book ai didi

epplus - 打开使用 EPPlus 包合并的 SSRS 导出的 excel 时出现 "Repaired Records: String properties from/xl/sharedStrings.xml part (Strings)"错误

转载 作者:行者123 更新时间:2023-12-04 17:31:52 27 4
gpt4 key购买 nike

我正在将 SSRS 报告导出到单独的 excel 文件中,并使用 EPPlus 将它们合并到一个文件中。合并成功,但当我尝试在 Excel 中打开文件时出现以下错误。
我删除了报告数据以生成空报告,但它仍然给我这个错误。不过,我可以合并其他一些 SSRS 报告文件而没有任何问题。我想知道 EPPlus 中是否有任何选项或设置我应该打开/关闭。

Repaired Records: String properties from /xl/sharedStrings.xml part (Strings)



我在这里提供了两个 XML 文件(在解压缩 xlsx 后来自/xl/sharedStrings.xml)以及 Excel 修复工作表之前和之后。我的道歉,但我不是故意格式化 XML 以保留原始形式的所有标签。

Excel 修复之前(来自 EPPlus 合并文件):

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="6" uniqueCount="6"><si><r xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><rPr><b></b><i val="0"></i><strike val="0"></strike><u val="none"></u><sz val="18"></sz><color rgb="FF000000"></color><rFont val="Tahoma"></rFont></rPr><t xml:space="preserve">Data Exceptions - Warnings</t></r><r xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><rPr><b val="0"></b><i val="0"></i><strike val="0"></strike><u val="none"></u><sz val="18"></sz><color rgb="FF000000"></color><rFont val="Verdana"></rFont></rPr><t xml:space="preserve"></t></r><r xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><rPr><b></b><i val="0"></i><strike val="0"></strike><u val="none"></u><sz val="18"></sz><color rgb="FF000000"></color><rFont val="Tahoma"></rFont></rPr><t xml:space="preserve">Summary</t></r></si><si><r xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><rPr><b val="0"></b><i val="0"></i><strike val="0"></strike><u val="none"></u><sz val="10"></sz><color rgb="FF000000"></color><rFont val="Calibri"></rFont></rPr><t xml:space="preserve"> Execution Time: </t></r><r xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><rPr><b></b><i val="0"></i><strike val="0"></strike><u val="none"></u><sz val="10"></sz><color rgb="FF000000"></color><rFont val="Calibri"></rFont></rPr><t xml:space="preserve">11/14/2019 12:03:07 PM</t></r></si><si><t>Loan Number</t></si><si><t>Asset Type</t></si><si><t>Data Exception Name</t></si><si><t># Of Loans</t></si></sst>


Excel修复后(excel修复原文件后保存在Excel中):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="6" uniqueCount="6"><si><t>Data Exceptions - WarningsSummary</t></si><si><r><rPr><sz val="10"/><color rgb="FF000000"/><rFont val="Calibri"/></rPr><t xml:space="preserve"> Execution Time: </t></r><r><rPr><b/><sz val="10"/><color rgb="FF000000"/><rFont val="Calibri"/></rPr><t>11/14/2019 12:03:07 PM</t></r></si><si><t>Loan Number</t></si><si><t>Asset Type</t></si><si><t>Data Exception Name</t></si><si><t># Of Loans</t></si></sst>


这是合并 Excel 文件的代码,以防我在这里遗漏任何内容。顺便说一下,使用 Office InterOp 合并的相同文件没有这个问题。但是,我想避免使用有其自身问题的 InterOp。任何帮助/提示都会很棒。谢谢
    private string MergeUsingEPPlus(List<String> ExcelFiles, string resultFile)
{
using (ExcelPackage masterPackage = new ExcelPackage(new FileInfo(resultFile)))
{
foreach (var file in ExcelFiles)
{
using (ExcelPackage pckg = new ExcelPackage(new FileInfo(file)))
{

foreach (var sheet in pckg.Workbook.Worksheets)
{
//check name of worksheet, in case that worksheet with same name already exist exception will be thrown by EPPlus
string workSheetName = sheet.Name;
foreach (var masterSheet in masterPackage.Workbook.Worksheets)
{
if (sheet.Name == masterSheet.Name)
{
workSheetName = string.Format("{0}_{1}", workSheetName, DateTime.Now.ToString("yyyyMMddhhssmmm"));
}
}

//add new sheet
masterPackage.Workbook.Worksheets.Add(workSheetName, sheet);
}
}
}

//masterPackage.Save();
masterPackage.SaveAs(new FileInfo(resultFile));
}
}

最佳答案

我有同样的问题。根本原因是 Microsoft Excel 在每个单元格中的字符限制为 32,767 个字符,而我的某些值更长。
无论如何,原因可能因情况而异,因此我将尝试描述识别问题的通用方法。

  • 用Excel打开文件,让他恢复文件。
  • 保存恢复的副本。

  • 现在我们有两个文件,一个是原始的,一个是用Excel恢复的。让我们利用 xlsx 格式实际上是一个存档的事实。
  • 重命名原始文件和恢复的文件。将扩展名更改为 zip。
  • 提取这两个文件。
  • 打开两个文件夹并从 Excel 错误消息 (xl/sharedStrings.xml) 转到文件
  • 打开这两个文件并进行比较。

  • 我使用 Notepad++ 和比较插件。顺便说一下,第一次比较可能会显示出很多微不足道的差异。您可以使用“全部替换”功能使它们在两个文件中相同。
  • 您在所有操作后得到的差异很可能是 Excel 错误的原因。
  • 关于epplus - 打开使用 EPPlus 包合并的 SSRS 导出的 excel 时出现 "Repaired Records: String properties from/xl/sharedStrings.xml part (Strings)"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58862773/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com