I just recently realise, while using Excel, it lacks on features for being able to update SQL server data through their worksheet.
I have tried using Data-->From other sources--> SQL Server data; that works like a charm but as it has limited ability (View and only get the latest data but not update).
I don’t know if this is done purposely by Microsoft as a money making schemes.
But through my research today, I also came across PowerQuery, and It seems to do pretty much what Data add-in did escape it has few new extra features and sounds pretty advance, therefore, I was wondering if this add-in has the ability to update SQL server data using excel sheet, if so can you guys advise me to the right direction:
I came across lots of commercials products that did the job but frankly speaking, I cannot afford it.
The best solution for in this space that I've seen is the Master Data Services component included in SQL Server (Business Intelligence or Enterprise Edition). This includes an nice Excel Add-In for maintaining data, a Web UI and SQL Views and Staging Tables for data integration.
It doesn't have any direct integration with Power Query, but I would let PQ dump data into Excel Tables, then copy and paste the data into Excel tables using the MDS Add-In.
I need to give power-users of the web application I am working on the ability to create their own reports, analysis, etc. in Excel. Basically they need to create some Excel sheets, read some data from the web app and than mix the result with further data coming from other data sources.
The web application already exposes data in JSON/XML format through a web api (not fully REST but this doens't matter) and I would use this channel to get data in Excel.
At the moment I have these three options in my mind:
In the past I've solved a request like this with some VBA code and a COM object (that talked with the server/database) but I am not sure if today this is still the best solution to do this kind of job.
I have learned that today Excel has PowerPivot that can read data from a web service. I could develop an oData feed for PowerPivot but I am not sure if PowerPivot is what power-users need
Another solution could bean ad-hoc Excel add-in
How would you solve a request like this?
Power Query would be a better option than Power Pivot here. Power Pivot is a dimensional modeling and analytical database (it is exactly a private instance of SSAS Tabular running behind the Excel process).
Power Query is an end-user friendly ETL tool, developed as an add-in for Excel, and available natively as of Office 2016. It allows loading directly to an Excel worksheet or into a Power Pivot model. It will give more flexibility to your end users. It is a GUI-driven interface that is a front-end to the M query language, developed by Microsoft.
Unfortunately, I am not able to help with Power Query too much, but it fits your use case perfectly.
Edit: An additional feature of Power Query, likely not to meet your needs, but I thought I'd throw in.
Power Query can read directly from HTML tables. If you present data in HTML tables, your end users can simply load directly from a URL.
Power Query definitely the "correct" tool for this within Microsoft world. It can also handle JSON and XML (and Odata) directly. How well it manages your data will depend a bit on how nicely formatted it is, but it can work with most things with a little bit of effort.
It is a free Microsoft authored add-in for pre Excel 2016 and built in to Excel 2016.
I have some records in SharePoint server. I have to create some reports using SSRS. I am little bit confuse that I used SharePoint list for creating reports or I used separate database for creating SSRS report. Please let me know which one is best way for creating SSRS report, using SharePoint list or using separate SQL Server database.
Thanks.
If you're dealing with relatively small datasets, it's probably fine to get data from SharePoint lists but this is not supported directly until SSRS 2008 R2. However, you can try to adapt the technique described here for earlier versions:
http://www.codeproject.com/Articles/24469/SQL-Reporting-Services-data-from-SharePoint-lists
This example explains how to do this with SharePoint 2007 - I'm not sure what you'd need to do to make it work with SharePoint 2010. You don't indicate in your question which version of SharePoint you're using, so I'll throw it out there just in case it's helpful.
If you're using SSRS 2008 R2, then you have a built-in SharePoint list source which you can learn about here: http://www.mssqltips.com/sqlservertip/2068/using-a-sharepoint-list-as-a-data-source-in-sql-server-reporting-services-2008-r2/
I would consider it a reasonable source if the reports run fast enough. If they don't, you might need to set up a separate database so that you can tune the queries and/or the data to get better performance.
Are there any tools on the market that effectively analyze data in SharePoint lists? I have a client looking to analyze and report on employee performance data stored in SharePoint.
Does SSRS give you anything useful?
Do you just need to report the data, or do you require complicated aggregation?
Nintex reports on SharePoint itself (and is acually quite cheap). The way the question is stated the report might be about employee data in a sharepoint list so SSRS does make more sense.
You can also look at some the BI features that come with MOSS Enterprise such as the KPI web part, scorecards, reports, Excel services and dashboards.
In addition to SSRS you should also consider using either Excel or Access to run reports :-
Analysing SharePoint Data in Excel
(Look for the section titled SharePoint-to-Excel and Data Synchronization)
How to Link SharePoint Server 2007 Lists with Microsoft Access 2007
Page currently borked, cached version http://209.85.229.132/search?q=cache:YnuTwWha77UJ:sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx%3FID%3D68+connecting+access+to+sharepoint+lists&cd=5&hl=en&ct=clnk
Remember that you can also access the list data as XML so any 3rd party BI/reporting tool that can call one of SharePoints web services and manipulate the resulting XML could also be used - there are must be hundreds of contenders here.
The best tool to use depends upon many factors such as what you may be familiar with, the complexity of analysis you need, if you need static or dynamic reports (drill down etc). BI & Reporting tools are a huge area!
Finally if you need fairly simple PivotTable/crosstab type functionality then this CrossTab web part may be suitable (disclaimer - its sold by my company)
Edited:
What is the easiest way to scrape extract SharePoint list data to a separate SQL Server table? One condition: you're in a work environment where you don't control the SQL Server behind the SharePoint Server, so you can't just pull from the UserData table.
Is there there any utilities that you can use to schedule a nightly extract?
Is Microsoft planning any improvement here for "SharePoint 4"?
Update Jan 06, 2009:
http://connectionstrings.com/sharepoint
For servers where office is not installed you will need:
this download
There is a SSIS SharePoint task you can use to grab the data info a regular dataflow:
http://www.codeplex.com/SQLSrvIntegrationSrv
Scraping? As in screen scraping? Are you serious? ;)
2 Options
SharePoint Object Model - http://msdn.microsoft.com/en-us/library/ms441339.aspx
SharePoint Web Services - http://msdn.microsoft.com/en-us/library/ms479390.aspx
specifically the Lists web service
The web services is how Excel/Access communicate with SharePoint to integrate with its lists.
In fact a bit of Google foo gives these two results :-
Connecting SQL Reporting Services to a SharePoint List
Accessing SharePoint List Items with SQL Server 2005 Reporting Services
The 2 minute answer is to use Data Synchronisation Studio from Simego ( http://www.simego.com ) just point it at your List and database and it will sync all the changes.
There is an ADO.NET adapter for MOSS 2007/2010 and WSS 3.0/4.0 available which goes under the name Camelot .NET Connector for Microsoft SharePoint. It enables you to query lists in SharePoint through standard SQL language, using SharePoint as a data layer.
Besides from the connector, there will be a large number of open source tools and utilities available, such as webparts for exporting data to various formats (XML, MySQL, ..), Joomla plugins, synchronization services, etc.
See http://www.bendsoft.com for more details and to watch webcasts. BendSoft is currently looking for beta-testers and encourage all feedback from the community.
Example:
SELECT * FROM My Custom SharePoint List
INSERT INTO Calendar (EventDate,EndDate,Title,Location) VALUES ('2010-11-04 08:00:00','2010-11-04 10:00:00','Morning meeting with Leia','Starbucks')
DELETE FROM Corp Images WHERE Image Name = 'marketing.jpg'
I had written a full article about this with step by step screenshot procedures. It does not use any third party components only SQL BI Tools and Sharepoint. Have a look here
http://macaalay.com/2013/11/01/how-to-archive-sharepoint-list-items-to-sql-server/
As Ryan said I would also suggest using object model / web services to store data to separate SQL database. I think that the best approach is to write an event handler that will trigger on your least and copy the data user inserted/updated.
Regarding your query about "SharePoint 4", Bill Gates made some remarks at SharePoint Conference 2008. He suggests enriching SQL tables with SharePoint data, and goes on to mention several other potentially cool things. What exactly he means and whether it will help solve your problem in the future is hard to say until we start seeing betas of WSS4 / MOSS 14.
I would go with the simego software, but i dont have the money, maybe a 15 days trial is enough!
If you have MOSS installed, the Business Data Catalog can be setup from the Sharepoint Central Administration to automagically synchronize data for you. This is a very powerful product and is included with MOSS. I love it when a client has it enabled so I can take advantage of it.
But some don't and for myself, I've found that if they don't have BDC running and available, inevitably they don't give developers many rights to SQL Server so SSIS is generally out of the question (but maybe that's just me). No problem; for those I'll pull together a lightweight EXE that runs on a scheduled task that queries Lists.asmx and pushes changes to a SQL Server table. Fairly trivial stuff for a simple list where nothing is deleted. Get yourself Visual Studio 2008, CAML Builder, and prepare for a good time. The Lists.asmx results is a little funny in that a list's row's fields are each a single node with a lot of attributes, with no child nodes ... something like this off the top of my head ... just remember that when coding ...
<z:row ows_Id="1" ows_Field1="A1" ows_Field2="B1"/>
<z:row ows_Id="1" ows_Field1="A2" ows_Field2="B2"/>
Complications in code occur with copying lists where items are deleted, or where there is a parent/child relationship between SP lists. You'd think I'd have some code to send you, but I haven't bothered putting together something I could reuse.
I'm sure there's other ways of handling it, but the scheduled task EXE so far has been reliable for me for multiple apps for multiple years.
i wrote some code to achieve it, you can find it over here
extract data from moss 2007
Depending on the exact nature of the data you need to insert, it may be possible to just use the auto generated RSS feed to get the information you want, a process will need to read the rss and formulate a query.
Otherwise a consoleapp/service could use the object model to do the same thing, but with more control over field information.
I wish something like this was much easier to do. Something that didn't need SSIS and was boiled down to a console tool that reads a xml config file for source/target/map info.
http://blogs.officezealot.com/mtblog/archive/2008/06/03/importing-list-data-into-sql.aspx