У меня есть программа, которая автоматически генерирует 2D-сетку кнопок и сохраняет сетку во вложенном списке, и я пытаюсь экспортировать этот список в MS Excel. однако код, который я пытаюсь сделать, вызывает множество ошибок. Я могу получить эту работу без использования списка, но мне нужно использовать вложенный список, чтобы очистить список, заполнив его снова, если и когда размер сетки увеличивается или уменьшается. Есть логика, что я использую даже выполнимоЭкспорт вложенных элементов списка
Как следует:
//This is not the complete code
List<List<Button>> buttonss = new List<List<Button>>();
List<Button> rowList = new List<Button>();
//Some method that creates a grid of buttons
buttons = new Button[row][];
for (int r = 0; r < row; r++)
{
buttons[r] = new Button[col];
buttonss.Add(rowList);
for (int c = 0; c < col; c++)
{
buttons[r][c] = new Button();
rowList.Add(buttons[r][c]);
}
}
Следующая вещь, которую я хочу сделать, это Ot экспортировать этот список в Excel.
Сетка:
Кнопка:
//Export to MS Excel button
private void btnExport_Click(object sender, EventArgs e)
{
ep.Do("sheet.xsl", rowList);//(ERROR 0)
}
Класс:
//Export class
public void Do(string excelName, System.Collections.Generic.List<Button[][]> Grid)
{
for (int i = 0; i <= Grid.Count(); i++)
{
for (int j = 0; j <= Grid[i].Count(); j++)
{
AddData(i, j, Grid[i][j]);//(ERROR HERE [1])
}
}
//app.SaveWorkspace(excelName);
}
public void AddData(int row, int col, System.Collections.Generic.List<Button[][]> button)
{
if (button == null) return;
row++;
col++;
Range range = worksheet.Cells[row + 2, col + 2];
if (!defaultBackgroundIsWhite)
{
range.Interior.Color = button.BackColor.ToArgb();//(ERROR HERE[2])
}
else
range.Interior.Color = button.BackColor.Name != "Control" ? button.BackColor.ToArgb() : System.Drawing.Color.White.ToArgb();//(ERROR HERE)
// range.NumberFormat = "";
worksheet.Cells[row + 2, col + 2] = button.Text;//(ERROR HERE[3])
row--;
col--;
}
Ошибки: 0: Аргумент 2: не может конвертировать из «System.Collections.Generic.List 'to' System.Collections.Generic.List 'C: ..
1: Лучший перегружен матч метод 'SmartRota.ExportHeadWaiter.AddData (междунар, INT, System.Collections.Generic.List)' имеет некоторые недопустимые аргументы C: ..
2: Ошибка 3 «System.Collections .Generic.List 'не содержит определения для «BackColor» и не может быть найден метод расширения «BackColor», принимающий первый аргумент типа «System.Collections.Generic.List» (вам не хватает директивы using или ссылки на сборку ?) C: ..
3: то же самое, что и выше eroor
Любая идея, как я могу разобраться в этом – Tacit
Ну начнем правильно объявить параметры ваших функций.Затем попытайтесь понять, почему вы пытаетесь передать «Список
Я исправил это, но сказал, что AddData (i, j, hwGrid [i] [j]); и ep.Do ("sheet.xsl", rowList); имеет некоторые недопустимые аргументы – Tacit