Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Помогите пожалуйста в написании сниппета для того чтобы брать из таблицы столбцы. Аналог действия (прикрепил в комментарии). Библиотеку Epplus решил использовать, так как необходимо получать столбцы с разных листов одной таблицы
Помогите пожалуйста в написании сниппета для того чтобы брать из таблицы столбцы. Аналог действия (прикрепил в комментарии). Библиотеку Epplus решил использовать, так как необходимо получать столбцы с разных листов одной таблицы
Немного даже улучшил, поиск будет не по номеру столбца, а по имени в первой строке.
То есть создаете переменную searchColumnName пишите туда имя столбца как у вас в таблице в первой строчке.
Обязать обратите на пример шаблона.
Взять столбец из таблицы в список:
var tb = project.Tables["Table"]; // Table заменить на имя таблицы
string searchColumnName = project.Variables["searchColumnName"].Value; // имя столбца для поиска из переменной
var resList = new List<string>();
for (int col = 0; col < tb.ColCount; col++)
{
if (!tb.GetCell(col, 0).Contains(searchColumnName)) continue;
for (int row = 1; row < tb.RowCount; row++)
{
string cell = tb.GetCell(col, row);
resList.Add(cell);
}
}
project.Lists["nameList"].AddRange(resList); // nameList заменить на свой
upd: Если нужно решение принципиально по номеру столбца, напишите. С удовольствием покажу.)
upd1: Чтобы избежать вопросы про EPPlus. EPPlus вшита в ZennoPoster и используется через project.Tables["Table"]. .
Для таких простых задач хватит этой версии (той что используется в ZP).
Немного даже улучшил, поиск будет не по номеру столбца, а по имени в первой строке.
То есть создаете переменную searchColumnName пишите туда имя столбца как у вас в таблице в первой строчке.
Обязать обратите на пример шаблона.
Взять столбец из таблицы в список:
var tb = project.Tables["Table"]; // Table заменить на имя таблицы
string searchColumnName = project.Variables["searchColumnName"].Value; // имя столбца для поиска из переменной
var resList = new List<string>();
for (int col = 0; col < tb.ColCount; col++)
{
if (!tb.GetCell(col, 0).Contains(searchColumnName)) continue;
for (int row = 1; row < tb.RowCount; row++)
{
string cell = tb.GetCell(col, row);
resList.Add(cell);
}
}
project.Lists["nameList"].AddRange(resList); // nameList заменить на свой
upd: Если нужно решение принципиально по номеру столбца, напишите. С удовольствием покажу.)
upd1: Чтобы избежать вопросы про EPPlus. EPPlus вшита в ZennoPoster и используется через project.Tables["Table"]. .
Для таких простых задач хватит этой версии (той что используется в ZP).
Советую делать консольное приложение для таких дел, так как у меня лично не получалось скомпилировать с зенкой нормально.
Только с интегрированным проектом VS22.
Using:
using OfficeOpenXml; // в VS
Взять столбец из таблицы в список с используванием EPPlus:
ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;
string path = project.Variables["TablePath"].Value; // путь из переменной
ExcelPackage table = new ExcelPackage(new FileInfo(path));
ExcelRange tb = table.Workbook.Worksheets[0].Cells; // первый лист в книге
string searchColumnName = project.Variables["searchColumnName"].Value; // имя столбца для поиска
int maxCol = tb.End.Column;
int maxRow = tb.End.Row;
var resList = new List<string>();
for (int col = 1; col < maxCol; col++)
{
if (!tb[1, col].Text.Contains(searchColumnName)) continue;
for (int row = 2; row < maxRow; row++)
{
if (tb[row, col].Text == string.Empty) continue;
string cell = tb[row, col].Text;
resList.Add(cell);
}
}
project.Lists["nameList"].AddRange(resList); // nameList заменить на свой