ОК, поэтому, прежде чем мы начнем: у меня уже есть форма, которая работает на 95%.
Моя проблема просто заключается в том, что когда Excel открывается впервые после генерации, формулы должны работать вручную для ссылок на «рендеринг», что скорее ... раздражает.
для простых. Версия C#, с которой мы работаем, составляет 9.0 и Epplus 4.5.3.3 (поскольку компания не хочет покупать лицензию, обновление невозможно) < /p>
Таким образом, в основной реализации цель: у нас есть 2 семинара. У обоих есть идентификационное поле. Поле ID во втором листе, как предполагается, следит за полем гиперссылки.
Что за поле гиперссылки «предполагается найти первую строку в первом листе с соответствующим идентификатором, а затем отображает поле названия этого ряда (1 -й лист) в поле Link (2 -й лист) < /p>
Я надеюсь, что это было достаточно точно, что я могу объяснить. Более глубокий.
В этом мы будем работать с одним листом. /> Здесь у вас есть нужный дисплей
Теперь, как указано раньше, я уже получил формула для этого
= hyperink ("#" Индекс ($ C $ 2: $ C $ 10; MATCH ($ E2; $ A 2: $ 10; 0))); src = "https://i.sstatic.net/tpizqfuj.png"/>
И я должен щелкнуть в ячейке и нажмите Enter для рендеринга. /> < /p>
Здесь у вас есть реализация epplus c# (она не автоматизирована, потому что опять же, это небольшая витрина < /p>
string excelPath = "Result.xlsx"; // Path to my Excel file
using (ExcelPackage package = new ExcelPackage())
{
ExcelWorkbook wb = package.Workbook;
ExcelWorksheet ws = wb.Worksheets.Add("Sheet");
#region Fill Cells
ws.Cells[1, 1].Value = "Seller";
ws.Cells[1, 2].Value = "Month";
ws.Cells[1, 3].Value = "Product";
ws.Cells[2, 1].Value = "Robert";
ws.Cells[2, 2].Value = "Mar";
ws.Cells[2, 3].Value = "Bananas";
ws.Cells[3, 1].Value = "Tom";
ws.Cells[3, 2].Value = "Feb";
ws.Cells[3, 3].Value = "Oranges";
ws.Cells[4, 1].Value = "Adam";
ws.Cells[4, 2].Value = "Jan";
ws.Cells[4, 3].Value = "Lemons";
ws.Cells[1, 5].Value = "Lookup value";
ws.Cells[2, 5].Value = "Adam";
ws.Cells[3, 5].Value = "Tom";
ws.Cells[1, 6].Value = "First match";
ws.Cells[2, 6].Value = "=HYPERLINK(\"#\"&CELL(\"address\"; INDEX($C$2:$C$10; MATCH($E2;$A$2:$A$10;0))); INDEX($C$2:$C$10; MATCH($E2;$A$2:$A$10;0)))";
ws.Cells[3, 6].Value = "=HYPERLINK(\"#\"&CELL(\"address\"; INDEX($C$2:$C$10; MATCH($E3;$A$2:$A$10;0))); INDEX($C$2:$C$10; MATCH($E3;$A$2:$A$10;0)))";
wb.CalcMode = ExcelCalcMode.Automatic;
wb.FullCalcOnLoad = true;
wb.Calculate(new ExcelCalculationOption(){ AllowCirculareReferences = true});
#endregion
package.SaveAs(new FileInfo(excelPath));
}
< /code>
Я много экспериментировал. Я пробовал вещи, такие как размещение функции не как cell.value, но Cell.formular (Ofc I затем удалил = в начале)
Я также попытался выполнить команду расчетов на самих клетках, прежде чем я ее сохраню. ряд.
Надеюсь, я смог правильно объяснить свою проблему.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ith-epplus
Реализация динамического/соответствующего гиперссылки Win Excel с Epplus ⇐ C#
Место общения программистов C#
1757531102
Anonymous
ОК, поэтому, прежде чем мы начнем: у меня уже есть форма, которая работает на 95%.
Моя проблема просто заключается в том, что когда Excel открывается впервые после генерации, формулы должны работать вручную для ссылок на «рендеринг», что скорее ... раздражает.
для простых. Версия C#, с которой мы работаем, составляет 9.0 и Epplus 4.5.3.3 (поскольку компания не хочет покупать лицензию, обновление невозможно) < /p>
Таким образом, в основной реализации цель: у нас есть 2 семинара. У обоих есть идентификационное поле. Поле ID во втором листе, как предполагается, следит за полем гиперссылки.
Что за поле гиперссылки «предполагается найти первую строку в первом листе с соответствующим идентификатором, а затем отображает поле названия этого ряда (1 -й лист) в поле Link (2 -й лист) < /p>
Я надеюсь, что это было достаточно точно, что я могу объяснить. Более глубокий.
В этом мы будем работать с одним листом. /> Здесь у вас есть нужный дисплей
Теперь, как указано раньше, я уже получил формула для этого
= hyperink ("#" Индекс ($ C $ 2: $ C $ 10; MATCH ($ E2; $ A 2: $ 10; 0))); src = "https://i.sstatic.net/tpizqfuj.png"/>
И я должен щелкнуть в ячейке и нажмите Enter для рендеринга. /> < /p>
Здесь у вас есть реализация epplus c# (она не автоматизирована, потому что опять же, это небольшая витрина < /p>
string excelPath = "Result.xlsx"; // Path to my Excel file
using (ExcelPackage package = new ExcelPackage())
{
ExcelWorkbook wb = package.Workbook;
ExcelWorksheet ws = wb.Worksheets.Add("Sheet");
#region Fill Cells
ws.Cells[1, 1].Value = "Seller";
ws.Cells[1, 2].Value = "Month";
ws.Cells[1, 3].Value = "Product";
ws.Cells[2, 1].Value = "Robert";
ws.Cells[2, 2].Value = "Mar";
ws.Cells[2, 3].Value = "Bananas";
ws.Cells[3, 1].Value = "Tom";
ws.Cells[3, 2].Value = "Feb";
ws.Cells[3, 3].Value = "Oranges";
ws.Cells[4, 1].Value = "Adam";
ws.Cells[4, 2].Value = "Jan";
ws.Cells[4, 3].Value = "Lemons";
ws.Cells[1, 5].Value = "Lookup value";
ws.Cells[2, 5].Value = "Adam";
ws.Cells[3, 5].Value = "Tom";
ws.Cells[1, 6].Value = "First match";
ws.Cells[2, 6].Value = "=HYPERLINK(\"#\"&CELL(\"address\"; INDEX($C$2:$C$10; MATCH($E2;$A$2:$A$10;0))); INDEX($C$2:$C$10; MATCH($E2;$A$2:$A$10;0)))";
ws.Cells[3, 6].Value = "=HYPERLINK(\"#\"&CELL(\"address\"; INDEX($C$2:$C$10; MATCH($E3;$A$2:$A$10;0))); INDEX($C$2:$C$10; MATCH($E3;$A$2:$A$10;0)))";
wb.CalcMode = ExcelCalcMode.Automatic;
wb.FullCalcOnLoad = true;
wb.Calculate(new ExcelCalculationOption(){ AllowCirculareReferences = true});
#endregion
package.SaveAs(new FileInfo(excelPath));
}
< /code>
Я много экспериментировал. Я пробовал вещи, такие как размещение функции не как cell.value, но Cell.formular (Ofc I затем удалил = в начале)
Я также попытался выполнить команду расчетов на самих клетках, прежде чем я ее сохраню. ряд.
Надеюсь, я смог правильно объяснить свою проблему.
Подробнее здесь: [url]https://stackoverflow.com/questions/79760956/implementing-dynamic-matching-hyperlink-win-excel-with-epplus[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия