Add "Open in desktop app" feature for Microsoft office document - ms-word

I want to add "open in desktop app" feature for Microsoft office document uploaded in my SaaS product. Is there a an API from Microsoft which allows me to achieve that seamlessly?

Yes there is. See Office URI Schemes
To open an Excel file you can do something like this:
ms-excel:ofe|u|https://locationofthefile.com/file.xls
Use ofe to open a file and edit or ofv to open a file and view.
There are more complex options as you can read in the docs. But this will probably do it for the most cases
Application
URI
Word
ms-word:
Power Point
ms-powerpoint:
Visio
ms-visio:
Access
ms-access:
Project
ms-project:
Publisher
ms-publisher:
SharePoint
ms-spd:
Infopath
ms-infopath:

Related

How to Add Custom Option in MS Word File Menu by Office Addin using manifest.xml

How can we add a custom option in "File Menu/Tab" by custom "Office Addin"?
I can find how to add "Control" in an office tab using "ExtensionPoint". But I am unable to find how can we add a custom option in "File Menu". Following are the documentation links I have gone through.
https://learn.microsoft.com/en-us/office/dev/add-ins/reference/manifest/extensionpoint
https://learn.microsoft.com/en-us/office/dev/add-ins/reference/manifest/officetab
image 1:
image 2:
The Backstage UI can't be customized with web add-ins. See Add-in commands for Excel, PowerPoint, and Word for more information about possible customizations.
Feature requests on Tech Community are considered, when the dev team go through the planning process. Use the github label: “Type: product feature request” at https://aka.ms/M365dev-suggestions .
FYI these customizations are possible using COM add-ins, so you may also consider creating a VSTO based add-in instead, see Walkthrough: Create your first VSTO Add-in for Outlook.

Office Web Addin - Open or save or load document from specfic location

I'm working on an Office word web add-in (not VSTO). I have opened a new / existing document from the current system or from a Sharepoint document library and side-loaded my taskpane addin and ribbon menu. Using a ribbon menu control, I should open a document from a sharepoint document library for editing and saving to some other location in Sharepoint. Is it possible in office.js?
Shall I open the document using Javascript API (office.js)?
If Point 1 is possible then can I open document from Sharepoint or one drive?
Can I save document using office.js to specific location?
Did you tried:
using the graph API to access the files you need out of One Drive.
use the context.application.createDocument().open() API to open the file in Word.
Finally, after user updates, use the getFileAsync() method to get the base64 encoded docx and upload it back to one drive or wherever you need to?

Dynamic data manipulation in word online

I am trying to build a task-pane add-in for word online which can do mail merge like desktop office. Now I understand that word online does not support mail merge out of the box, so I thought about the following steps -
Create a template (DOTX) using desktop office which will contain Region or something like a merge field etc. Upload the template to one drive.
Open a blank doc and add a task pane add-in in word online. This is temporary step for now.
Click a button on the add-in.
This click will stream the template (DOTX) from server using an app service call.
Render the stream into word online web page.
Edit and save.
Close word online and reopen.
Click the doc link.
This will render the doc in word online.
Add the add-in in the task pane (temp step).
Click edit button.
Call app service to fetch the latest merge data source.
Traverse through the word xml and replace the values corresponding to the region or special keys.
Re-render the doc.
My users will have E1 subscription of office 365.
Is this thought process logical and achievable with word online? Thanks in advance!...
I think your approach is much more complicated than it needs to be. Word Online supports Add-ins created using the JavaScript APIs, as supported by the information in this article: https://msdn.microsoft.com/EN-US/library/office/dn833104.aspx
It should be possible for you to create the "template" on the Desktop (Word 2013 or 2016 is required - but only 2016 supports the current full scope of the JS API) and "insert" your add-in, which links it to the document. Opening the document in Word online should automatically load the add-in, that can then link to the data source and fill in the data.
As data targets ("merge fields"), I recommend you use Content Controls.

Office add-in for save location

When you open office 2013 and click "Open", you have 3 choices by default (Recent, OneDrive and Computer) and the possibility to "Add a Place".
I would like to create a add-in to add a custom place...
See, I develop a Electronic Document Manager software, and I provide a add-in to office suit, this would be another feature of the add-in.
Instead of "saving-locally-and-uploading-the-file-to-the-site" and/or "downloading-document-and-read", the user would just open and/or save to the site... I would use the Save/Open event to check if everything is right and the user has access and etc...
It kind of depends what you mean by 'office add-in'. Microsoft rather confusingly renamed the modern 'office store apps' to 'add-ins' at the Build 2015 event. However we also still have the old style VSTO 'add ins'.
If you mean a modern store add-in, then no, those only have limited access to read/edit the document via the office JS library.
If you mean the old style VSTO add-in, then I am not sure.

Saving document to server in Java

We have an existing web application written in Java. We want to give our users the ability to open a Word document that is stored in our application on the server. So when the user downloads the document from our server, Word pops up and they then can edit this document on the client. Once finished editing the document we would like to give them the ability to save this document automatically back to the server where they retrieved it, by simply selecting on the Word Save icon. Similar to how SharePoint does it.
Seems to me SharePoint would be a good solution for this and they do it very well, but unfortunately we cannot use SharePoint in our architecture.
There also seems to be a lot of server-side possibilities that we can use to upload and open word documents from our server, I feel we can solve these use cases easily.
My big problem is the automatic saving of an edited document by the client back to our server where the document was downloaded
I am not Microsoft proficient to know what the best solution would be.
Should we write a Word AddIn to save to our server?
How do we get the Word AddIn into our users desktops?
Can we embed a Word AddIn into the Word document that is opened on the client?
1.Should we write a Word AddIn to save to our server?
If you don't want to use SharePoint you can develop an add-in where you can implement all the required functionality and much more.
2.How do we get the Word AddIn into our users desktops?
You can develop an installer for the add-in. See Deploying an Office Solution for more information. Also you can use the group policy objects for deploying the software automatically.
3.Can we embed a Word AddIn into the Word document that is opened on the client?
You can develop a document-level add-in, i.e. the code will be run for a specific document only. But you will need to install it as an application level add-in. See Architecture of Document-Level Customizations for more information.