Обработка исключений LinqToExcel для «неправильных» ячеек - PullRequest
0 голосов
/ 02 июля 2018

У меня есть проект ASP.NET, где я хочу принять LinqToExcel lib. Для теста я создал небольшой класс:

public class Point
{
    [ExcelColumn("Stop ID")]
    public int PointID{get;set;}
    [ExcelColumn("Name")]
    public string Name{get;set;}
    [ExcelColumn("Elevation, meters")]
    public float Elevation{get;set;}
}

У меня есть файл Excel, содержащий электронную таблицу с данными для этих Точки. Я могу получить их с помощью:

    var query1 = new ExcelQueryFactory(_pathExcelFile).WorksheetRange<Point>  ("C2", "H10000", "Points");
    foreach (var result in query1)
    {
        string name = result.Name;
    }

И это прекрасно работает, если данные в Excel верны. Но если я изменим, скажем, значение Elevation на любые строковые данные с символами (в модели Point это значение с плавающей запятой), приведенный выше код не будет выполнен на foreach с исключением «Входная строка не в правильном формате», и это исключение System.Format. Мне нужно обработать эту ситуацию таким образом, чтобы отобразить информативное сообщение о том, почему не удается выполнить синтаксический анализ с определенными координатами ячейки и значением, которое она содержит. Исключение не содержит эту информацию. Есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 03 июля 2018

Позвольте мне ответить за себя :) Отчаявшись получить быстрый ответ, я пошел к источникам этой библиотеки в GitHub и, к счастью, заметил один из недавних коммитов под названием «Исключение Throw с номером строки и именем / номером столбца (# 125)». https://github.com/paulyoder/LinqToExcel/commit/ff42b206fdc2ffbe7673eb2b320f5455c7b73720 По описанию это должно удовлетворить мою цель. К сожалению, этот еще не выпущен, но я взял источники, собранные мной, и это работает! С некоторыми незначительными проблемами - он показывает относительные номера строк, но это обходное решение. Итак, вернемся к моему первоначальному вопросу - текущая выпущенная версия linqtoexcel не поддерживает исключения для полной информации, но не выпущенные могут быть использованы, надеюсь, ребята выпустят ее в ближайшее время.

...