C# Excel发现无法读取的内容-恢复截断

C# Excel发现无法读取的内容-恢复截断,c#,excel,epplus,C#,Excel,Epplus,我正在使用EPPLus在Visual Studio 2017中构建Excel报表,我的要求之一是将与某个ID链接的所有数字附加到单个字段,但尝试时出现以下错误: Excel在“[filenameHere.xlsx]”中发现无法读取的内容。是否恢复此工作簿的内容?如果信任此工作簿的源,请单击“是” 当我这样做时,它会返回另一个信息框,其中说明: “Excel能够通过修复或删除不可读的内容来打开文件。 修复的记录:字符串属性来自/xl/sharedString.xml部分(Strings)”,它提供

我正在使用EPPLus在Visual Studio 2017中构建Excel报表,我的要求之一是将与某个ID链接的所有数字附加到单个字段,但尝试时出现以下错误:

Excel在“[filenameHere.xlsx]”中发现无法读取的内容。是否恢复此工作簿的内容?如果信任此工作簿的源,请单击“是”

当我这样做时,它会返回另一个信息框,其中说明:

“Excel能够通过修复或删除不可读的内容来打开文件。 修复的记录:字符串属性来自/xl/sharedString.xml部分(Strings)”,它提供了一个指向日志文件的链接,内容如下:

"

error178480_01.xmlErrors 在文件中检测到 'C:[filenamehere].xlsx'修复的记录:字符串 /xl/sharedStrings.xml部分的属性 (字符串) " 我将大约3000条记录拉到字段中,但当我运行代码时,只有大约1800条记录出现,并且信息被截断。以下是一个例子:

StringBuilderGroupString=new StringBuilder();

对于(int i=0;i这里的问题在于Excel每个单元格的字符限制为32767个字符。在返回3000个数字时(如果它们的长度与“samplenumber0000”或17个字符相同)每个单元格可以返回1700条左右的记录。通过将其拆分为单独的单元格,您可以通过分割结果以适应字符限制来修复它。下面是我如何使Excel工作的示例:

ExcelPackage exclPck = new ExcelPackage();
        ExcelWorksheet exclWs = exclPck.Workbook.Worksheets.Add("example");
        StringBuilder groupString = new StringBuilder();
        StringBuilder groupString2 = new StringBuilder();
        for (int i = 0; i <= 3000;i++)
            {
            if (groupString.Length <= 31740) {
                groupString.Append("sampleNumber" + i.ToString() + ",");
            }
            else
            {
                groupString2.Append("sampleNumber" + i.ToString() + ",");
            }
        }
        exclWs.Cells["A2"].Value= groupString.ToString();
        exclWs.Cells["A3"].Value = groupString2.ToString();
        exclPck.SaveAs(new System.IO.FileInfo("filenameHere.xlsx"));
ExcelPackage exclPck=新的ExcelPackage();
Excel工作表exclWs=exclPck.WORKEL.WORKETS.Add(“示例”);
StringBuilder groupString=新建StringBuilder();
StringBuilder groupString2=新的StringBuilder();
对于(int i=0;i
ExcelPackage exclPck = new ExcelPackage();
        ExcelWorksheet exclWs = exclPck.Workbook.Worksheets.Add("example");
        StringBuilder groupString = new StringBuilder();
        StringBuilder groupString2 = new StringBuilder();
        for (int i = 0; i <= 3000;i++)
            {
            if (groupString.Length <= 31740) {
                groupString.Append("sampleNumber" + i.ToString() + ",");
            }
            else
            {
                groupString2.Append("sampleNumber" + i.ToString() + ",");
            }
        }
        exclWs.Cells["A2"].Value= groupString.ToString();
        exclWs.Cells["A3"].Value = groupString2.ToString();
        exclPck.SaveAs(new System.IO.FileInfo("filenameHere.xlsx"));