I am using SSRS 2008 R2.
I want to generate a protected excel workbook so report users can reference it but cannot accidentally change it.
ALternatively I would accept being able to protect individual columns.
Is there a way to do this?
As far as I know, this is not possible with SSRS 2008 R2. A quick search results in a msdn thread corroborating this.
Alternatives I can think of, some of which a bit "heavy" though:
Use SSIS to fill an existing XLS file that has protection.
Export to XML, followed by custom post-processing using XSLT to transform to Office2007 format.
Write a custom rendering extension to do your own Excel-rendering.
Related
I work for a fairly large hospital in their Decision Support Department. We have several tools at our disposal for querying data, but our way of distributing the information could use some work.
We typically run our query and then copy and paste the data into Excel. From there we create graphs and crunch some numbers before sending the Excel file out via email.
We've recently been given access to our own Sharepoint site and so far it looks promising for document distribution. What I'm wondering though is this; what kind of functionality is built into Sharepoint for building reports that run automatically.
It would be great to take a whack of our monthly query to Excel reports and set them up to run automatically via Sharepoint.
I did some reading about Sharepoint lists and that seems promising, but I thought I'd ask here for the best way to go about this - provided it's even possible.
I guess a good first step would be how to create a report in Sharepoint?
I'm going to assume you're using Sharepoint 2013 and Office 2013.
You have a couple options available to you with Excel and Access. Both methods I'll briefly describe can be automated. In either case, you will need Lists, as they can connect to Excel and Access as tables.
For the Excel route, simply choose the "Export to Excel" option in a SharePoint list. This will create an Excel version of your list, but it's more than a static workbook--that workbook retains a one-way link from SharePoint to Excel, so you can refresh the spreadsheet to reflect the most up-to-date version of your SharePoint list. Furthermore, you can link multiple Lists to a single workbook--you'll have to export each list to Excel individually, but each worksheet will still retain its link to its respective list after you consolidate the spreadsheets into a single workbook. You can save this workbook wherever you like, it'll still keep the link. I personally like to set my linked workbooks up with macros that automatically refresh the spreadsheet whenever file is opened, but that's just me. The reason you might consider this option would be to avoid having to recreate the work of creating graphs and whatever other analytics you're doing--you may well be able to set yourself up such that the graphs and analytics pull live from the table that's coming in from SharePoint.
*Do note that changes you make to list data in Excel isn't sent back to SharePoint--this is done to protect your list.
For the the Access route, you can import a list into Access as a table. This option creates a dynamic link to your SharePoint list the same way the Excel option does--the link is one-way and what you do in Access won't be sent back to SharePoint. You can create queries and reports as you normally would after the table is imported.
On a daily basis we need to export Excel sheets (showing tables + charts) with then current SSAS data and copy the sheets into specific SharePoint document folders. I guess moving the sheets to SharePoint is the smaller task, since the folder can be used like a windows directory. I am uncertain about how to do the rest. I considered:
1) SSRS, schedule the export via Server Agent somehow (I guess this is possible since reports can be exported to Excel so the automated export is probably doable without jumping through too many loops).
2) Design the report in Excel instead (with pivot tables + charts), put this as a template into a Sharepoint library and somehow make the sheet update from the Data Source and export it into a static (not connected) sheet on a daily basis.
While I am quiet sure that 1) is doable I am totally unsure about 2), but 2) has the valuable benefit that the domain expert can make up the sheet without having to install and mess with the Report Designer.
I am thankful for any comment about approach 1 or 2 or any alternative.
If you go with your option 1, consider setting up an email enabled SharePoint list and setting up a subscription in SSRS to email the Excel reports to that list.
For the email enabled list see
http://office.microsoft.com/en-us/windows-sharepoint-services-help/add-content-to-sites-by-sending-e-mail-HA010086730.aspx
For the SSRS subscription see
http://msdn.microsoft.com/en-us/library/ms159762.aspx
It does have the drawback that your subject matter experts might have to learn ReportBuilder, but if they can learn Excel then ReportBuilder shouldn't be too much of a stretch. If you do get option 2 working, though, post back, it sounds interesting.
I have an Excel table with data but here the rows and columns each have meaning, for example:
ColHead1 ColHead2 ColHead3
RowHead1 Data11 Data12 Data13
RowHead2 Data21 etc. etc.
RowHead3
I would like users to edit the data using SharePoint forms.
I've considered the following options
Flatten the data and manually add editors for each field onto the form (so that I can simulate some sort of grid layout). This may become unmanageable if I need to make a change though.
Insert the data into a list and let SharePoint create a default form, but this will also flatten the data.
Is it possible to somehow use the data in SharePoint directly in a List (or lists) without flattening?
Or should I just post the Excel sheets for direct editing in SharePoint?
You are right. 2-D data cannot be handled by SharePoint.
The best solution here would be to use Excel Services.
In 2007, Excel Services did not allow to write changes to backend file. I am not sure if the situation has changed with SharePoint 2010. You might have to check it out.
You can also put Excel file in document library itself.
However, what I am missing here are the business objectives for this requirement. What essentially do you want to achieve by putting this data in SharePoint forms ? May be there is some better way which others will be able to suggest if they know actual requirements.
I am using Qt 4.5 and Windows XP. I need to create an Microsoft Excel Document that has data (some labels and values) from the Qt application. I need to format those data with some fonts,bold,italics,color, background color etc., Besides ordinary data, there will be Picture files (JPG) also. I need to add those into the Excel. I know retrieving values from Excel using QAxWidget, QAxObject. But I don't have a clue about the formatting options that can be applied to cells through Qt and adding images as well?? Any help regarding this are welcome.
There are a few options:
Use a cross platform library
xlslib is one such library
Use the Excel Object model directly If your program will run on a
machine that has office installed
you can use COM or ActiveX to tie into the
Excel object model to create the
workbooks. Excel has a rich and
complete object that will let you do
most operations.
Write to an intermediate database Write the QT
data to some type of database and
pull the data using Excel. This
route requires in depth Excel
knowledge and a database.
Write out an XML format that Excel can understand
Excel 2003 can understand
SpreadsheetML. Simple formatting
should be straight forward to construct an XML
document for. http://msdn.microsoft.com/en-us/library/bb226687(office.11).aspx
Excel 2007 can
understand OpenXML. I have not worked
with it, but I understand it is more
complicated (i.e. more feature rich) http://msdn.microsoft.com/en-us/library/aa338205.aspx
I have this excel sheets + a vba part with 3 forms that interacts with the sheets (read/write data, xml export, etc).
I have some data verification in my forms' code, so I would like to be able to modify values in the sheet only through the forms, not through direct "on-the-sheet" editing
Is that possible?
When I lock the cells I want to protect, the forms cant modify the cells anymore either...
in other words, is there a way to prevent editing, except through the macros/forms?
I am using excel2007 and might have to make it compatible for excel2003.
Maybe you can unlock the cells from the code just before modifying them, and then lock them down again after? Not very elegant I know. Maybe you could also hide the sheet from the user. I'm sure there is no perfect protection, because ultimately the user can turn VBA/Macros off. Question is how much you want to protect the data.
Is Microsoft Office Infopath available to you and your users as an alternative to Excel?
This is very specifically a "forms" application, with data validation and native XML data storage format so other apps can easily process them. You can use your own schema if you want. From your description, this sounds like what you want to accomplish.
Unfortunately, Infopath 2007 forms are not cross-compatible with Infopath 2003, so a mixed-version office (like mine) can be a showstopper.