#c# #excel #epplus
#c# #excel #epplus
Вопрос:
В C # я заполнил файл Excel данными. Теперь я хотел бы создать таблицу, начинающуюся с ячейки A2. Я использую приведенный ниже код для создания таблицы, но вместо создания таблицы, начинающейся с ячейки A2, таблица создается, начиная с ячейки A3
using var package = new ExcelPackage(file);
var ws = package.Workbook.Worksheets.Add(Name: "MainReport");
var range = ws.Cells[Address: "A2"].LoadFromCollection(people, PrintHeaders: true);
range.AutoFitColumns();
//Formats Header row
ws.Cells[Address: "A1"].Value = "My Data!";
ws.Cells[Address: "A1:C1"].Merge = true;
ws.Column(col: 1).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Row(row: 1).Style.Font.Size = 24;
ws.Row(row: 1).Style.Font.Color.SetColor(Color.Pink);
ws.Row(row: 2).Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
ws.Row(row: 2).Style.Font.Bold = true;
ws.Column(col: 3).Width = 20;
//create a range for the table
ExcelRange range_table = ws.Cells[2, 1, ws.Dimension.End.Row, ws.Dimension.End.Column];
//add a table to the range
ExcelTable tab = ws.Tables.Add(range_table, "Table1");
//format the table
tab.TableStyle = TableStyles.Medium2;
Комментарии:
1. Я не понимаю, похоже, что таблица начинается с A2 для меня. Это скриншот «что вы хотите, чтобы произошло» или «что происходит»?
2. Если ваш вопрос: «как я могу избавиться от заголовков, чтобы данные начинались с A2», вы пробовали установить для заголовков значение false?
3. @CaiusJard когда я открываю диспетчер имен в Excel, в нем указано, что диапазон таблицы 1 составляет от A3 до C7. Так что это не включает заголовок. Также посмотрите на зеленую рамку на изображении выше. Она переходит от A3 к C7
4. Я все еще тебя не понимаю. Можете ли вы добавить скриншот, чтобы показать, как, по вашему мнению, он должен выглядеть?
Ответ №1:
Сам Excel работает так, что если вы выберете A2:C4
и создадите таблицу и скажете «не имеет заголовков», она добавит некоторые общие заголовки A2:C2
и переместит область данных (и данные, если таковые имеются) A2:C5
.
Если вы скажете «имеет заголовки», заголовки также будут определены в A2:C2
, но только данные A3:C4
.
Настоящий Excel, очевидно, делает некоторые предположения о том, присутствуют заголовки или нет, и предварительно устанавливает флажок для вас.
Как указано здесь, в документации API, нет флага, определяющего, присутствуют ли заголовки в диапазоне, поэтому не может быть никаких предположений, и можно предположить, что это «нет», и происходит сдвиг, как описано сверху.
Если вы примете это во внимание, вы сможете это решить.