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

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

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

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

Что можно сделать, чтобы заставить при открытии автообновиться автофильтр? Сорри за тафталогию.
...
Рейтинг: 0 / 0
22.06.2011, 08:42
    #37319224
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить при открытии книги обновиться автофильтр.
А почему при открытии, а не в момент вставки?
Лучше в шаблоне не применять фильтр, а после вставки применить.
...
Рейтинг: 0 / 0
22.06.2011, 09:08
    #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
22.06.2011, 09:40
    #37319342
Barkan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заставить при открытии книги обновиться автофильтр.
Ну вот нашёл вариант решения - макрос вызываемый при открытии книги.
Но вариант на КРАЙНИЙ случай, т.к. при открытии книги excel задаёт вопрос от
системы безопасности, на который ползатели будут не адекватно реагировать,
отключая макрос.

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

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


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