Я читаю OfficeOpenXml.ExcelWorksheet и получаю исключение ArgumentOufOfRangeException в середине коллекции.C# ArgumentOutOfRangeException при чтении ExcelWorksheet
Я читаю вот так process.Information = sheet.Cells[line, i++].Text;
. В этой строке i = 22
пока sheet.Dimension.Column = 28
.
Когда я отладка и перечислить коллекцию, я вижу, что исключение по методе .Text
в то время как метод .Value
показывает правильное значение.
Согласно трассировки стека исключений, исключение бросают методом
---- EDIT System.Text.StringBuilder.Insert() - - После принятого ответа я понял, что проблема заключается не только в чтении. Я отвечу тому же файлу с дополнительным столбцом (успех импорта или insuccess), и пока я делаю форматирование листа, я получаю снова ту же ошибку, все из-за метода System.Text.StringBuilder.Insert(). Я пытаюсь кнопкуШирина столбец sheet.Column(22).AutoFit()
Это трассировки стека
at System.Text.StringBuilder.Insert(Int32 index, Char* value, Int32 valueCount)
at System.Text.StringBuilder.Insert(Int32 index, Char value)
at OfficeOpenXml.Style.XmlAccess.ExcelNumberFormatXml.ExcelFormatTranslator.ToNetFormat(String ExcelFormat, Boolean forColWidth)
at OfficeOpenXml.Style.XmlAccess.ExcelNumberFormatXml.ExcelFormatTranslator..ctor(String format, Int32 numFmtID)
at OfficeOpenXml.Style.XmlAccess.ExcelNumberFormatXml.get_FormatTranslator()
at OfficeOpenXml.ExcelRangeBase.GetFormattedText(Boolean forWidthCalc)
at OfficeOpenXml.ExcelRangeBase.get_TextForWidth()
at OfficeOpenXml.ExcelRangeBase.AutoFitColumns(Double MinimumWidth, Double MaximumWidth)
at OfficeOpenXml.ExcelRangeBase.AutoFitColumns(Double MinimumWidth)
at OfficeOpenXml.ExcelRangeBase.AutoFitColumns()
at OfficeOpenXml.ExcelColumn.AutoFit()
at SkiptraceAPI.Models.ProcessosRepository.formatExcel(ExcelPackage package, Boolean addValidation) in
Это похоже на ошибку в реализации, связанную с обработкой стиля вашей ячейки. Попробуйте 'process.Information = sheet.GetValue (строка, i ++)' вместо этого. –
dasblinkenlight
В чем проблема с чтением свойства Value? Вам действительно нужно свойство '.Text'? Для некоторых примеров у меня есть googled, и я вижу, что 'Value' используется намного больше, чем' Text'. Вы не можете найти документацию для используемого вами пакета, но не 'Text' какое-то специальное свойство? –
На самом деле я не знаю, есть ли проблема с использованием '.Value' вместо' .Text'. Это старый код и не может вспомнить, почему вы выбираете этот способ (но, возможно, это была причина). Этот код всегда работал, и клиент сообщал об этой ошибке в первый раз. Я предполагаю, что я изменю его на «.Value» вместо этого, но просто хочу понять проблему ... – NunoRibeiro