Вопрос

Всякий раз, когда одностраничный отчет экспортируется в Excel, лист в Excel называется по имени отчета.Если отчет состоит из нескольких страниц, листы называются sheet1, sheet2,....Есть ли какой - нибудь способ указать имена листов в SSRS 2005 ?

решение:Нашел это после некоторого поиска в Google:Изменение имен листов в SQL Server RS Excel:QnD XSLT ( QnD XSLT )

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

Это было полезно?

Решение

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

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

    1. Add a group to your report

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

    • 'Seitenumbruche' означает "Разрыв страницы"
    • 'Zwischen den einzelnen Instanzen einer Gruppe' means 'Between the individual instances of a group'
  3. Теперь вам нужно установить PageName из Табликса Участник (группа), НЕ в PageName из Табликса сами по себе.
    Если у вас есть правильный объект, if скажет "Tablix Участник" (Tablix-Элемент на немецком языке) в поле заголовка таблицы свойств.Если это неправильный объект, он скажет Только "таблица/табликс" (без Участник) в поле заголовка таблицы свойств.

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

MultiTabExcelFile

Другие советы

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

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

Для более подробного объяснения загляните сюда: 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

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

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

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

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

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

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

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

Метод прямоугольника

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

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

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

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

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

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

Названия рабочих листов будут совпадать с названием страницы.

Повторяющиеся имена будут иметь суффикс числа в квадратных скобках.

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

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

<Sheetnames>?sheetname1?</Sheetnames>

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top