powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как заставить при открытии книги обновиться автофильтр.
6 сообщений из 6, страница 1 из 1
Как заставить при открытии книги обновиться автофильтр.
    #37319180
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал шаблон документа с графиком и листом на котором разметил место для исходных данных рядов.
Т.е. ряд 1 - данные: B2:B51, ряд 2 - C2:C51
В шаблоне ячейки исходных данных пустые.
Наложил автофильтр на них с условием "не пустые", чтобы в графике не отображались пустые значения.

Программно, с помощью NPOI, пишу значения в ячейки исходных данных и сохраняю файл под другим именем.
При этом указываю:

Код: plaintext
1.
sheet.ForceFormulaRecalculation = True         'все формулы при открытии должны быть пересчитаны
HSSFFormulaEvaluator.EvaluateAllFormulaCells(Me.WB)  'до кучи ещё и это

При открытии книги вижу следующее: график пустой, на листе данных все строки спрятаны, хотя реально там
записаны данные. Если руками на автофильтре указать условие "все" а потом "не пустые", то данные показываются
и график отрисовывает их как надо.
Excel у нас 2003.

Что можно сделать, чтобы заставить при открытии автообновиться автофильтр? Сорри за тафталогию.
...
Рейтинг: 0 / 0
Как заставить при открытии книги обновиться автофильтр.
    #37319224
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему при открытии, а не в момент вставки?
Лучше в шаблоне не применять фильтр, а после вставки применить.
...
Рейтинг: 0 / 0
Как заставить при открытии книги обновиться автофильтр.
    #37319268
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor,

Я просто не знаю как в NPOI создать автофильтр.
Код у меня примерно такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
        Dim File As FileStream = New FileStream(Application.StartupPath & "\book1.xls", FileMode.Open, FileAccess.Read)
   	Dim WB As HSSFWorkbook = New HSSFWorkbook(File)
   	File.Close
   	Dim SH As HSSFSheet = WB.GetSheet("Лист1")
   	SH.GetRow( 1 ).GetCell( 0 ).SetCellValue("sdfsdfsd")
   	SH.GetRow( 1 ).GetCell( 1 ).SetCellValue( 5 )
   	SH.GetRow( 1 ).GetCell( 2 ).SetCellValue( 6 )
   	SH.GetRow( 2 ).GetCell( 0 ).SetCellValue("hhhhhhhh")
   	SH.GetRow( 2 ).GetCell( 1 ).SetCellValue( 4 )
   	SH.GetRow( 2 ).GetCell( 2 ).SetCellValue( 3 )
   	SH.GetRow( 3 ).GetCell( 0 ).SetCellValue("bbbbbbbb")
   	SH.GetRow( 3 ).GetCell( 1 ).SetCellValue( 3 )
   	SH.GetRow( 3 ).GetCell( 2 ).SetCellValue( 1 )
   	SH.ForceFormulaRecalculation = True
   	HSSFFormulaEvaluator.EvaluateAllFormulaCells(WB)
   	SH.
   	File = New FileStream(Application.StartupPath & "\book1-1.xls", FileMode.Create)
   	WB.Write(File)
   	File.Close
...
Рейтинг: 0 / 0
Как заставить при открытии книги обновиться автофильтр.
    #37319342
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот нашёл вариант решения - макрос вызываемый при открытии книги.
Но вариант на КРАЙНИЙ случай, т.к. при открытии книги excel задаёт вопрос от
системы безопасности, на который ползатели будут не адекватно реагировать,
отключая макрос.

Ищу другие варианты.
...
Рейтинг: 0 / 0
Как заставить при открытии книги обновиться автофильтр.
    #37319929
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, вместо FileStream придется использовать COM Object, чтобы обновить фильтр перед закрытием файла. В противном случае остается пожалуй только обработчик события Workbook_Open в самом файле.
...
Рейтинг: 0 / 0
Как заставить при открытии книги обновиться автофильтр.
    #37319972
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL),

Сделал финт ушами: сформировал документ в NPOI, после чего через COM открываю его и выполняю "ручное" обновление
автофильтра, сохраняю, а уж потом открываю приложением по умолчанию.
Убого как-то, но работает. :)
Надо NPOI глубже поковырять.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как заставить при открытии книги обновиться автофильтр.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]