Как получить именованные листы excel при экспорте из SSRS
когда отчет экспортируется в Excel, лист в Excel с именем отчет. Если отчет содержит несколько страниц, листы называются sheet1, sheet2,.... Есть ли способ указать имена листов в SSRS 2005 ?
решение: Нашел это после некоторого googleing: изменение имен листов в SQL Server RS Excel: QnD XSLT
попробует и опубликует обновление, если оно работает.
10 ответов
Некромантия, на случай, если все ссылки потемнеют:
-
Добавить группу в свой отчет
Кроме того, рекомендуется установить порядок сортировки группового выражения здесь, поэтому вкладки будут отсортированы по алфавиту (или, как вы хотите, отсортированы).
- "Zeilengruppe" означает "целевая группа"
- 'Gruppeneigenschaften" означает "свойства группы'
-
установить разрыв страницы в свойствах группы

- "Seitenumbruche" означает "разрыв страницы"
- "Zwischen den einzelnen Instanzen einer Gruppe "означает" между отдельными экземплярами группы"
Теперь вам нужно установить
PageNameТабликса (группы), не thePageNameТабликса itselfs.
Если вы получили правильный объект, если скажете "Табликс "(Табликс-элемент на немецком языке)в заголовке сетки свойств. Если это неправильный объект, он скажет только "таблица" / "табликс" (без ) в заголовке сетки свойств.Примечание: Если вы получаете табликс вместо члена табликса, он будет помещать одно и то же имя вкладки в каждой вкладке, а затем
(tabNum)! Если это произойдет, теперь вы знаете, в чем проблема.
для экспорта на разные листы и использования пользовательских имен, начиная с SQL Server 2008 R2 это можно сделать с помощью комбинации группировки, разрывов страниц и ссылке собственность группы.
кроме того, если это только один лист, который вы хотели бы дать определенное имя, попробуйте InitialPageName свойства отчета.
для более подробного объяснения, посмотрите здесь: http://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-excel-export/
в SSRS 2008 R2 используйте ссылке свойства группы страницы : http://bidn.com/blogs/bretupdegraff/bidn-blog/234/new-features-of-ssrs-2008-r2-part-1-naming-excel-sheets-when-exporting-reports
поместите имя вкладки в заголовок страницы или группу TableRow1 в отчете, чтобы она отображалась в позиции " A1 " на каждом листе Excel. Затем запустите этот макрос в Книгу Excel.
Sub SelectSheet()
For i = 1 To ThisWorkbook.Sheets.Count
mysheet = "Sheet" & i
On Error GoTo 10
Sheets(mysheet).Select
Set Target = Range("A1")
If Target = "" Then Exit Sub
On Error GoTo Badname
ActiveSheet.Name = Left(Target, 31)
GoTo 10
Badname:
MsgBox "Please revise the entry in A1." & Chr(13) _
& "It appears to contain one or more " & Chr(13) _
& "illegal characters." & Chr(13)
Range("A1").Activate
10
Next i
End Sub
чтобы добавить имена вкладок при экспорте в excel, я использовал следующий метод:
- в окне дизайн отчета выберите объект табликса.
- открыть окно свойств объекта табликса.
- добавьте требуемое имя вкладки в
PageNameсобственность. - выполнить отчет
- экспорт отчета в Excel.
- теперь имя рабочего листа совпадает с
PageNameсвойство объекта табликса.
прямого пути нет. Вы либо экспортируете XML, а затем правильно XSLT, чтобы правильно отформатировать его (это сложный способ). Более простой способ-написать несколько отчетов без явных разрывов страниц, чтобы каждый экспортировался в один лист только в excel, а затем написать сценарий, который слился бы для вас. В любом случае это требует этапа постобработки.
я был в состоянии сделать это следующим более сложные инструкции, предложенные Валентино Вранко и РАО , но вот более простой подход , для более простого отчета . Это поместит каждую таблицу на отдельный лист и назовет их в Excel . Похоже, это не влияет на другие виды экспорта, такие как PDF и Word .
сначала в Tablix Properties из ваших таблиц под General , чек Add a page break before or after, это разделяет отчет на листы .
затем в каждой таблице , щелкните таблицу, затем в Grouping вид , на Row Groups сторона, выберите родительскую группу или группу строк по умолчанию, а затем в Properties посмотреть в разделе Group -> PageBreak set BreakLocation to None и PageName к имени листа .
метод прямоугольника
самый простой и надежный способ достижения листов/разрывов страниц-использовать инструмент прямоугольник.
сгруппируйте страницу в прямоугольники или один прямоугольник, который заполняет страницу во вложенном отчете, следующим образом:
самый быстрый способ размещения прямоугольника-нарисовать его вокруг объектов, которые вы хотите разместить в прямоугольник.
щелкните правой кнопкой мыши и в меню компоновки отправьте прямоугольник назад.
выделить все объекты и перетащите их немного, но будьте уверены, что они приземляются в том же месте где они были. Теперь все они будут в прямоугольнике.
в свойствах прямоугольника вы можете установить разрыв страницы в начале или конце прямоугольника, а имя страницы может быть основано на выражении.
в листы будут называться так же, как название страницы.
повторяющиеся имена будут иметь число в скобках суффикса.
Примечание: убедитесь,что имена являются допустимыми именами листов.
вы можете использовать-sed - и-grep-для замены или записи в заголовок xml каждого файла с указанием желаемого имени листа, например, sheetname1, между любым вхождением тегов:
<Sheetnames>?sheetname1?</Sheetnames>
хотя это использование свойства PageName для объекта фактически позволяет настраивать экспортированные имена листов в Excel, следует предупредить, что оно также может обновлять определения пространства имен отчета, что может повлиять на возможность повторного развертывания отчета на сервере.
У меня был отчет, что я применил это в пределах ставок, и он обновил мое пространство имен с 2008 по 2010 год. Когда я попытался опубликовать отчет на сервере отчетов 2008R2, я получил сообщение об ошибке, что пространство имен не было действительный и должен был вернуть все назад. Я уверен, что мое обстоятельство может быть уникальным, и, возможно, это не всегда будет происходить, но я подумал, что это достойно публикации. Как только я нашел проблему, эта страница помогла вернуть пространство имен обратно (есть теги, которые также должны быть удалены в дополнение к сбросу пространство имен):
