Is it possible to develop for Office 365 (confusion due to new-to-365) - excel

I'm not even sure if it's possible at all. Earlier, I've been designing addons to Outlook and Excel (using VSTO and VBA). Now, my company got into this Office 365 thinking and we have all our environment online, no local software at all, strictly and only web client approach.
It's got its advantages. But the downside is that out support have no clue how it works (except to tell us to click the settings and look for options, sigh). So, I wonder if it's possible to develop and somehow upload my own customizations (NB we have no servers in the cloud - everything is provided on SAS basis).
Suppose I'd like to:
mark all emails from a certain sender with yellow background in the list in Outlook, or
highlight every occurrence of the word "donkey" in the text mass in Word.
Is it doable at all?
I've googled for it but all I can see is that there's an API and that we need to runt the stuff on our own servers. Am I just confusing myself here?

First of all, if you have O365 subscription, you actually still have the ability to download all desktop version of Office. So your existing customizations should still work on Desktop version of Office.
Second,check out Office Add-in on dev.office.com. Office Add-ins extend the functionality of Office with a web app that lives within Office applications. They work similar to traditional VBA add-ons and we have a rich set of API that helps you interact with Office. This is basically a web app with JavaScript, HTML and CSS. You can build it with any tools you are familiar with and host it anywhere. It is really easy to build and let us know if you have more questions.
Thanks,
Sky

Your best bet for highlighting messages from specific senders would be to use the Outlook REST APIs to access the messages and either stamp a specific category color on the messages, or a flag to highlight the message in the list view. That approach would work across both Web, Outlook, and even Mobile (if you use flags). The new Outlook add-in model is powerful and works for Outlook on the Web, as well as Outlook on Windows, but doesn't allow you to update the colors of the list view add-ins.

Related

How do I distribute excel office add-in(w/ office.js) in privately?

Q1. Are there any method to distribute excel office add-in(w/ office.js) in privately?
(Will office.js add-in also be distributed like VSTO's .exe OR .xla/.xlam macro files with password?)
Q2. If I run office add-in server(node.js) on my on-premise server, What will have to be distributed to the end-users?
(I want to hide the core source logic unlike VBA macro.)
I am now developing an excel office add-in. But there seems to be some limitation to deploy to the end-users in my company.(We are now testing environment for pilot, and using office 365 but it is restricted by IT's policy)
When I refer to the official documentation below, the docs says that the way to deploy add-in in privately are Microsoft 365 admin center OR SharePoint catalog.(AppSource is publicly for everyone.)
refer. https://learn.microsoft.com/en-us/office/dev/add-ins/publish/publish
However, it seems that it have to use Microsoft's services or components like SharePoint or admin center. I don't want to use these items because I want to flexibly cope with various environments.
I have also read the article as below.
refer. How to distribute private office add-ins?
But the reply thread seems that the writer couldn't get the appropriate answer what I also want to know.
I want to know the other ways to distribute excel office add-in(w/ office.js) without unveiling my core source logic and what is the minimum materials I have to provide to the end-users(i.g. manifest or something).
Typically, as you have already know, you need to host the add-in's source code on the web server anywhere. The manifest file just refers to the place where the sources are stored. And the single file which should be provided to be able to side-load add-ins locally is the manifest file. Everything else is hosted under your control.
Due to the nature of the web technology you can't hide the source code from users. The add-in acts like a regular web page. The best what you could do is to obfuscate your code.

Excel add-in interaction with other Office365 applications

I'm exploring Office 365 development and I'm trying with Excel add-ins.
One thing I'd like to was to interact with other Office applications, like Outlook, OneDrive and Word - from Excel.
For example, I'd like to send an email from an Excel table and/or insert the value of a cell in a Word document.
After searching the documentation, I couldn't find if this is possible, so I'd appreciate some help.
I'm new to Office development.
Thanks in advance!
Add-ins (Office.js) run in separate instances of browsers (controlled by the Office apps). This makes it difficult to pass messages between apps. Browser storage (cookies, localStorage and IndexedDatabase) can't consistently see each other's data/events when in separate instances. Because of this, we had to pass messages through our servers just to communicate between Excel, Word, and PowerPoint on the same device. Microsoft currently does not provide an API to communicate between add-ins in different apps.

Are there more methods for the "application" object?

Am I right to conclude that I may have to wait for certain objects and methods to appear in order to launch one office App from another?
I'm trying to link a number of Excel lines (customer interactions) one to one with OneNote pages.
I cannot find Office-js methods equivalent to those used in this VBA. I looked in the Office.js documentation and see only a couple of methods.
It is perfectly possible that I'm barking up the wrong tree.
This isn't possible with using Office.js. It's important to remember that each Web Add-in runs within its own sandbox and is essentially just a web app. It simply isn't possible for a Web Add-in to determine what other applications you have and remotely execute code against them (nor would you really want this if you consider the potential security risks that would open up).
What you can do however is leverage Microsoft Graph to interact with OneNote. So rather than having Excel drive OneNote over COM, you have your Web Add-in act as middleware between the current Excel Worksheet and a user's OneNote Notebook. You Add-in uses Office.js to communicate with the Worksheet and make REST calls to Microsoft Graph to interact the Notebook.
The first thing you'll need is an Access Token for the Excel user to use with Microsoft Graph. You can obtain this using the getAccessToken() method in Office.js. The steps for setting this up can be found at Authorize to Microsoft Graph in your Office Add-in (preview).
The second thing you'll need is to call Microsoft Graph. Assuming you want to keep things simple, I would use the Microsoft Graph Client SDK for Javascript for this. You'll also want to take a look at the OneNote API overview
from Microsoft Graph's documentation.
There are also some samples in OneNote's GitHub. Although none of the samples are exactly what you're looking for, they may still provide some valuable insights into how the API works.

Find current host in Office add-in

I want to know whether my add-in is running in Word, Excel or Powerpoint. I need a solution that works in the desktop version of the applications (but preferably for the online version as well).
Is this somehow possible?
The reason I'm asking is twofold:
I want to style the add-in app in the colors of the host application.
I submit the document to a webservice. I want to provide a filename as well and need to know if I should postfix with .docx, .xlsx or .pptx.
There isn't a straightforward way to determine the current host. I would also discourage going down the "single manifest, multiple hosts" path in the first place. As the APIs have matured, more and more functionality has become host specific. The most obvious examples being ExcelAPI and WordAPI.
This isn't to say you should build multiple web apps, just that you should maintain multiple manifests. Each manifest can specify a distinct "landing page" where you can make some session level settings that tell the rest of the App which host it's talking too.
The other benefit of this approach is you can be more selective about which Add-in Commands you declare and where in the ribbon they show up. In some cases you might have functions available in Excel that don't show up at all in Word or PowerPoint.

Publish Infopath Form MANUALLY to Sharepoint

Is there a way to publish Infopath form manually? I have an infopath form that I created for sharepoint on a computer. Now, I want to move that xsn file to another dev computer where sharepoint is installed but no infopath. So, I cant use the infopath publish options. Is there a way to MANUALLY PUBLISH?
What I have tried so far is to open the xsn file and read the xsf file. That did not work.
Can someone please help me out?
Thanks,
Moving my comment to answer.
First, I did not understand what "MANUALLY" did mean... but forgot to ask.
My personal belief (from never ever sufficient experience) is that it is impossible to manually substitute the publishing (which is being done from Infopath Designer).
And the latter is proprietary undocumented about full details procedure dependent on sharepoint internals (with the latter also being proprietary and closed information).
Might be somebody else has another opinion.
Well, you can try... and report here back.
Update:
There are development suites (IDE, frameworks, extensions) where you can develop all from the scratch or use open source libraries, extensions (like .NET, MS SQL Server Business Intelligence) and the approaches where you should follow what is precompiled and closed for meddling like Sharepoint and Infopath.
There are pro and contra in both.
In any case one should analyze and balance business requirements.
Anyway, I was a little puzzled by situation when you do not have Infopath installed on client machine.
In this case, you can use Infopath forms only through Infopath Forms Services of Sharepoint Server which is enterprise and rather expensive feature.
If you (or your client have it), then Infopath (which is part of Microsoft Office suite) is usually already bundled into all Microsoft plans or packages having enterprise Sharepoint server.
There is also Office 365 (Sharepoint Online) 30-day free trials with all bundled.
Here is comparison of plans and prices.
When mine expired, I was getting warnings and proposals to buy but really continued to have access for more 4 months before my access was really cut.
It is a marketing bluff that Infopath is easy. It is easy to start by clicking a few buttons and generate something ready but this easiness pays off dearly if you will be required to do something more flexible, customizable and/or not reqadily provided OOTB (very frequently used term in Sharepoint and Infopath, Out-Of-The_Box) in Sharepoint and IP when it happens that it is more difficult, more time consuming and more involved then using development from scratch approaches

Resources