Когда я использую var Records = MiniExcel.Query(fileName).ToList();< /p>
Я получаю сообщение об ошибке: Сообщение об ошибке: System.InvalidOperationException: «Счетчик свойств отмены игнорирования объекта не может быть равен 0»
Однако, когда я меняю его на var Records = MiniExcel.Query(fileName).ToList();, это работает.
Во втором случае он игнорирует заголовки в первой строке и использует A , B, C и др. в качестве заголовков. Моя цель состояла в том, чтобы использовать первую строку в качестве заголовков.
Насколько я понимаю, это то, что var Records = MiniExcel.Query(fileName).ToList(); должен делать, но это не так.
Это ошибка или я делаю что-то не так?
Извините, если я слишком многословен но я довольно новичок в C#, буду благодарен за любую помощь.
Это то, что я пытался: в использовании есть использование MiniExcelLibs;. р>
Код: Выделить всё
private void FillRecords(string fileName, int noRecords)
{
var records = MiniExcel.Query(fileName).ToList();
int countRecs = 0;
foreach (var record in records)
{
int rowIndex = testDataGridView.Rows.Add();
testDataGridView.Rows[rowIndex].Cells["CountryName"].Value = record["name"];
testDataGridView.Rows[rowIndex].Cells["Alpha3"].Value = record["alpha-3"];
testDataGridView.Rows[rowIndex].Cells["Alpha2"].Value = record["alpha-2"];
testDataGridView.Rows[rowIndex].Cells["CountryCode"].Value = record["country-code"];
testDataGridView.Rows[rowIndex].Cells["CountryRegion"].Value = record["region"];
testDataGridView.Rows[rowIndex].Cells["SubRegion"].Value = record["sub-region"];
testDataGridView.Rows[rowIndex].Cells["IntermediateRegion"].Value = record["intermediate-region"];
testDataGridView.Rows[rowIndex].Cells["RegionCode"].Value = record["region-code"];
testDataGridView.Rows[rowIndex].Cells["SubRegionCode"].Value = record["sub-region-code"];
testDataGridView.Rows[rowIndex].Cells["IntermediateRegionCode"].Value = record["intermediate-region-code"];
countRecs++;
if (noRecords > 0 && countRecs >= noRecords) return;
}
}
Я изменил ее на эту, но она не совсем идеальна, как мне хотелось бы знать на какие столбцы я ссылаюсь, если лист Excel меняет порядок или содержимое.
Код: Выделить всё
private void FillRecords(string fileName, int noRecords)
{
var records = MiniExcel.Query(fileName).ToList();
int countRecs = 0;
foreach (var record in records)
{
var dict = (IDictionary)record;
/*foreach (var key in dict.Keys)
{
testListBox.Items.Add($"Header: {key}");
}*/
if (countRecs > 0)
{
int rowIndex = testDataGridView.Rows.Add();
testDataGridView.Rows[rowIndex].Cells["CountryName"].Value = dict["A"];
testDataGridView.Rows[rowIndex].Cells["Alpha3"].Value = dict["C"];
testDataGridView.Rows[rowIndex].Cells["Alpha2"].Value = dict["B"];
testDataGridView.Rows[rowIndex].Cells["CountryCode"].Value = dict["D"];
testDataGridView.Rows[rowIndex].Cells["CountryRegion"].Value = dict["F"];
testDataGridView.Rows[rowIndex].Cells["SubRegion"].Value = dict["G"];
testDataGridView.Rows[rowIndex].Cells["IntermediateRegion"].Value = dict["H"];
testDataGridView.Rows[rowIndex].Cells["RegionCode"].Value = dict["I"];
testDataGridView.Rows[rowIndex].Cells["SubRegionCode"].Value = dict["J"];
testDataGridView.Rows[rowIndex].Cells["IntermediateRegionCode"].Value = dict["K"];
}
countRecs++;
if (noRecords > 0 && countRecs >= noRecords) return;
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... hing-wrong
Мобильная версия