Подтвердить что ты не робот

Как получить именные листы excel при экспорте из SSRS

Всякий раз, когда отчет одной страницы экспортируется в excel, лист в excel называется именем отчета. Если в отчете имеется несколько страниц, листы называются листами1, sheet2,.... Можно ли указать имена листов в SSRS 2005?

решение: Нашел это после некоторых googleing: Изменение имен листов в SQL Server RS ​​Excel: QnD XSLT

Попробуй и опубликуйте обновление, если оно будет работать.

4b9b3361

Ответ 1

Некромантия, на всякий случай, все ссылки становятся темными:

  • Добавить группу в свой отчет
    Кроме того, рекомендуется указать порядок сортировки выражения группы здесь, поэтому вкладки будут отсортированы в алфавитном порядке (или, тем не менее, вы хотите, чтобы они отсортировались).

    1. Добавить группу в отчет

    • "Zeilengruppe" означает "Целевая группа"
    • "Gruppeneigenschaften" означает "Свойства группы"
  • Установите разрыв страницы в свойствах группы 2. Установите разрыв страницы в свойствах группы

    • "Seitenumbruche" означает "разрыв страницы"
    • "Zwischen den einzelnen Instanzen einer Gruppe" означает "Между отдельными экземплярами группы"
  • Теперь вам нужно установить PageName элемента Tablix (группа), НЕ PageName в Tablix selfs.

    Если вы получили нужный объект, если в поле заголовка сетки свойств будет указано "Tablix Member" (Tablix-Element на немецком языке). Если это неправильный объект, он будет указывать только "table/tablix" (без члена) в поле заголовка сетки свойств.

  • Примечание. Если вы выберете tablix вместо элемента tablix, он поместит одно и то же имя вкладки на каждой вкладке, а затем (tabNum)! Если это произойдет, вы теперь знаете, в чем проблема. Tablix Member

MultiTabExcelFile

Ответ 2

Чтобы экспортировать на разные листы и использовать пользовательские имена, с SQL Server 2008 R2 это можно сделать, используя комбинацию группировки, разрывов страниц и свойства PageName группы.

В качестве альтернативы, если только один лист, который вы хотите указать конкретному имени, попробуйте свойство InitialPageName в отчете.

Для более подробного объяснения, посмотрите здесь: http://blog.hoegaerden.be/2011/03/23/where-the-sheets-have-a-name-ssrs-excel-export/

Ответ 4

Поместите имя вкладки в заголовок страницы или группу 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

Ответ 5

Чтобы добавить имена вкладок при экспорте в excel, я использовал следующий метод:

  • В окне проекта отчета выберите объект tablix.
  • Откройте окно свойств объекта tablix.
  • Добавьте нужное имя вкладки в свойство PageName.
  • Запустите отчет
  • Экспорт отчета в Excel.
  • Теперь имя рабочего листа совпадает с свойством PageName объекта tablix.

Ответ 6

Нет прямого пути. Вы либо экспортируете XML, а затем правильно XSLT, чтобы отформатировать его правильно (это трудный путь). Более простой способ состоит в том, чтобы писать несколько отчетов без явных разрывов страниц, поэтому каждый из них экспортируется в один лист только в excel, а затем записывает script, который будет сливаться для вас. В любом случае это требует постобработки.

Ответ 7

Мне удалось это сделать, следуя более сложным инструкциям, предложенным Валентино Вранкеном и Рей, но вот более простой подход, для более простого отчета. Это поместит каждую таблицу на отдельный лист и назовет их в Excel. Похоже, что это не влияет на другой экспорт, такой как PDF и Word.

Сначала в Tablix Properties ваших таблиц в General, проверьте либо Add a page break before or after, что отделяет отчет от листов.

Затем в каждой таблице щелкните таблицу, а затем в представлении Grouping на стороне Row Groups выберите родительскую группу или группу строк по умолчанию, а затем в представлении Properties в разделе Group -> PageBreak установите BreakLocation до None и PageName к имени листа.

Ответ 8

Метод Rectangle

Самый простой и надежный способ получения рабочих листов/разрывов страниц - использование инструмента прямоугольника.

Группируйте свою страницу внутри прямоугольников или одного прямоугольника, который заполняет страницу в сводном отчете следующим образом:

  • Самый быстрый способ размещения прямоугольника - рисовать его вокруг объектов, которые вы хотите разместить в прямоугольнике.

  • Щелкните правой кнопкой мыши и в меню макета отправьте прямоугольник обратно.

  • Выделите все свои объекты и слегка перетащите их, но убедитесь, что они приземлились там же. Все они теперь будут в прямоугольнике.

В свойствах прямоугольника вы можете установить разрыв страницы в начале или в конце прямоугольника, а имя страницы может быть основано на выражении.

Листы будут называться так же, как имя страницы.

У повторяющихся имен будет число в скобках.

Примечание. Убедитесь, что имена являются допустимыми именами таблиц.

Ответ 9

Вы можете использовать -sed- и -grep- для замены или записи в заголовок xml каждого файла с указанием желаемого имени листа, например, имя листа1, между любым вхождением тегов:

<Sheetnames>?sheetname1?</Sheetnames>

Ответ 10

Хотя это использование свойства PageName на объекте фактически позволяет вам настраивать экспортированные имена листов в Excel, следует предупредить, что он также может обновлять определения пространства имен отчета, что может повлиять на возможность повторного развертывания отчета на вашем сервер.

У меня был отчет о том, что я применил его к BIDS, и он обновил мое пространство имен с 2008 по 2010 год. Когда я попытался опубликовать отчет на сервере отчетов 2008R2, у меня возникла ошибка в том, что пространство имен недействительно и должно было вернуть все обратно. Я уверен, что мои обстоятельства могут быть уникальными, и, возможно, это не всегда произойдет, но я подумал, что это достойно опубликовать. Как только я нашел проблему, эта страница помогла вернуть обратно пространство имен (в дополнение к сбросу пространства имен также необходимо удалить теги):

http://beatheadagainstwall.blogspot.com/2011/03/invalid-target-namespace-when-deploying.html?showComment=1440647962263#c5741523651495876761