Web service with excel

Не секрет, что Excel довольно мощный инструмент для работы с числовыми табличными данными. Однако средства, которые предоставляет Microsoft для интеграции с ним, далеки от идеала. В частности, сложно интегрировать в Excel современные пользовательские интерфейсы. Нам нужно было дать пользователям Excel возможность работать с довольно насыщенным и функциональным интерфейсом. Мы пошли несколько другим путем, который в итоге показал хороший результат. В этой статье я расскажу, как можно организовать интерактивное взаимодействие Excel c веб-приложением на Angular и расшить Excel практически любым функционалом, который реализуем в современном веб-приложении.

Итак, меня зовут Михаил и я CTO в Exerica. Одна из проблем которые мы решаем — облегчение работы финансовых аналитиков с числовыми данными. Обычно они работают как с исходными документами финансовой и статистической отчетности, так и каким-либо инструментом для создания и поддержания аналитических моделей. Так сложилось, что 99% аналитиков работают в Microsoft Excel и делают там довольно сложные вещи. Поэтому перевести их с Excel на другие решения не эффективно и практически невозможно. Объективно, «облачные» сервисы электронных таблиц до функционала Excel пока не дотягивают. Но в современном мире инструменты должны быть удобны и соответствовать ожиданиям пользователей: открываться по клику мышки, иметь удобный поиск. А реализация в виде разных несвязанных приложений будет довольно далека от ожиданий пользователя.

То с чем работает аналитик выглядит примерно так:

Основные данные тут — это числовые «финансовые показатели», например, доход за 1 квартал 2020 года. Для простоты буду называть их дальше просто «числами». Как видно, почти никакой связи между числами в документе и в аналитической модели нет, все только в голове у аналитика. И работа с заполнением и поддержанием модели занимает часы поиска и перебивания чисел из документа в таблицы, а потом поиск ошибок ввода. Вместе этого мы хотели бы предложить пользователю привычные инструменты: «перетаскивание», вставка через клипборд и так далее, а также быстрый просмотр исходных данных.

Что у нас уже было

К моменту, когда мы начали реализацию интерактивного взаимодействия с Excel в виде, изложенном в этой статье, у нас уже была база данных на MongoDB, бэкэнд в виде REST API на .NET Core, фронтовое SPA на Angular и некоторые другие сервисы. Мы к этому моменту уже пробовали разные варианты интеграции в приложения электронных таблиц, в том числе и в Excel, и все они не пошли дальше MVP, но это тема отдельной статьи.

Связываем данные

В Excel существует два распространенных инструмента, с помощью которых можно решить задачу связывания данных в таблице с данными в системе: RTD (RealTimeData) и UDF (User-Defined Functions). Чистый RTD менее удобен для пользователя в плане синтаксиса и ограничивает гибкость решения. С помощью UDF можно создать кастомную функцию, которая будет работать привычным для Excel-пользователя образом. Ее можно использовать в других функциях, она понимает ссылки типа A1 или R1C1 и вообще ведет себя как надо. При этом никто не мешает использовать механизм RTD для обновления значения функции (что мы и сделали). UDF мы разрабатывали в виде Excel addin с использованием привычного нам C# и .NET Framework. Для ускорения разработки мы использовали библиотеку Excel DNA. 

Кроме UDF наш addin реализует ribbon (панель инструментов) с настройками и некоторыми полезными функциями по работе с данными.

Добавляем интерактивность

Для передачи данных в Excel и налаживания интерактива мы разработали отдельный сервис, который предоставляет подключение по Websocket при помощи библиотеки SignalR и фактически является брокером для сообщений о событиях, которыми должны обмениваться «фронтовые» части системы в реальном времени. Он у нас называется Notification Service.

Вставляем данные в Excel

В нашем SPA мы подсвечиваем все числа, которые обнаружила система. Пользователь может выделять их, навигировать по ним и т.п. Для вставки данных мы реализовали 3 механизма, чтобы закрыть различные варианты использования:

  • Перетаскивание (drag-and-drop)
  • Автоматическая вставка по клику в SPA
  • Копирование и вставка через клипборд

Когда пользователь инициирует drag’n’drop некоторого числа из SPA, для перетаскивания формируется ссылка с идентификатором этого числа из нашей системы (.../unifiedId/005F5549CDD04F8000010405FF06009EB57C0D985CD001). При вставке в Excel наш addin перехватывает событие вставки и парсит регэкспом вставляемый текст. При обнаружении валидной ссылки на лету подменяет ее на соответствующую формулу =ExrcP(...).

При клике на числе в SPA через Notification Service отправляется сообщение в addin, содержащее все необходимые данные для вставки формулы. Далее формула просто вставляется в текущую выделенную ячейку.

Эти способы хороши, когда пользователю нужно вставлять в свою модель по одному числу, но если надо перенести целую таблицу или ее часть, необходим другой механизм. Наиболее привычным для пользователей представляется копирование через клипборд. Однако этот способ оказался сложнее первых двух. Дело в том, что для удобства вставляемые данные должны быть представлены в нативном для Excel формате — OpenXML Spreadsheet. Наиболее просто это реализуется используя объектную модель Excel, то есть из addin’а. Поэтому процесс формирования клипборда у нас выглядит так:

  • Пользователь выделяет область с числами в SPA
  • Массив выделенных чисел передается на Notification Service
  • Notification Service передает его в addin
  • Addin формирует OpenXML и вставляет его в клипборд
  • Пользователь может вставить данные из клипборда в любое место любой Excel-таблицы.

Несмотря на то, что данные проделывают довольно долгий путь, благодаря SignalR и RTD происходит это довольно быстро и абстрагированно от пользователя. 

Распространяем данные

После того, как пользователь выбрал начальные данные для своей модели, их надо «распространить» все периоды (года, полугодия и кварталы), которые представляют интерес. Для этих целей одним из параметров нашей UDF является дата (период) данного числа (вспоминаем: «доход за 1 квартал 2020 года»). В Excel существует нативный механизм «распространения» формул, который позволяет заполнить ячейки той же формулой с учетом ссылок, заданных в параметрах. То есть вместо конкретной даты в формулу вставлена ссылка на нее, а далее пользователь «распространяет» ее на другие периоды, при этом в таблицу автоматически загружаются «те же» числа из других периодов. 

А что это там за число?

Теперь у пользователя есть модель на несколько сотен строк и несколько десятков столбцов. И у него может возникнуть вопрос, что же там за число в ячейке L123? Чтобы получить ответ, у нас ему достаточно кликнуть на эту ячейку и в нашем SPA откроется тот самый отчет, на той самой странице, где записано кликнутое число, а число в отчете будет выделено. Вот так:

А если это не просто одно число из отчета, а результат некоторых вычислений на числах, взятых из отчета, то мы подсветим все числа, входящие в вычисляемое в Excel выражение. При этом не происходит загрузки всего приложения и подгрузки всех необходимых данных, как в случае перехода по ссылке.

В качестве заключения

Вот такая, на мой взгляд, нестандартная реализация взаимодействия между Excel и веб-приложением получилась довольно удобной для пользователя. Благодаря использованию Excel порог входа для пользователей из целевой аудитории довольно низкий. При этом мы получаем также всю мощь Excel по работе с числовыми данными. Сами данные всегда остаются связанными с источником, а также связанными во времени. Для целевых клиентов нет необходимости встраивать в бизнес-процесс работы с данными абсолютно новые внешние системы. Наше решение встраивается как дополнительный «инструмент» внутри Excel, что является стандартом де-факто для провайдеров финансовых данных.

Подобный архитектурный подход к интеграции веб-приложений с Microsoft Excel может быть применим и для решения других задач, требующих интерактива и сложных пользовательских интерфейсов при работе с числовыми и табличными данными.

excel webservice function

The Excel WEBSERVICE and Excel FILTERXML Worksheet functions can be used to pull Internet data from a URL into a cell in a Excel spreadsheet. While the first pulls raw HTML data the second allows you to filter XML formats.

Excel up till now has been mostly an offline application. Although, you can use VBA, PowerQuery or other similar data tools in Excel to gain access to Internet and Online data sets these could not have been easily used with the help of Third Party AddIns such as my Scrape HTML AddIn. With the introduction of the WEBSERVICE function we gain immediate and easy access to any REST WebAPI.

In today’s post I will show you several examples of how to use these functions in practice. And how to extract data from an XML REST WebApi.

How to use the Excel WEBSERVICE function

The WEBSERVICE function downloads the HTTP response of the provided URL.
excel webservice function
Try running the Excel WEBSERVICE function on Google:

=WEBSERVICE("https://www.google.com")

What do you get? If all goes well you should get the HTML response for the Google Web Page.
Now past the above formula to cell A1 and the below to cell A2:

=MID(A1;FIND("<title>";A1)+LEN("<title>");FIND("</title>";A1)-FIND("<title>";A1)-LEN("<title>"))

The result of this Worksheet Excel Formula should be:

Google

Using FILTERXML in tandem with WEBSERVICE

Another function introduced in Excel 2013 is the FILTERXML function. It is designed to work in tandem with the Excel WEBSERVICE function.

What does the FILTERXML function do?

The Excel FILTERXML Worksheet function parses a XML string (string containing XML document) and returns a single element (node or attribute) provided by a XPath.
excel filterxml
Lots of odd words there right? So let us start breaking it down. XML is markup language for encoding documents. As a matter of fact HTML is based on XML and share a lot of similarities. Unfortunately for us HTML does not need often have to be as strictly parsed/validated as an XML does. Although some HTML could pass as XML files – in fact many Websites don’t validate as XML.

Now what is XPath? XPath is a query language for selecting XML elements such as nodes and attributes. XPath works for XML and HTML.

How to use the FILTERXML function

Now that we know what the FILTERXML functions let’s use it on a simple XML file. W3Schools fortunately has a lot of simple XML examples – let us use a simple XML Food Menu:

Example: WEBSERVICE and FILTERXML function

filterxml and webservice example 1

Example: WEBSERVICE and FILTERXML result

filterxml and webservice example 2

Explanation

xml exampleNow to explain what happens above. The XML file includes a couple of nodes – each one nested within the previous one. We start with node which hosts nodes. Each food node represents a single item in the menu. A food node contains , and node – which describe each menu item.

Now the FILTERXML functions used the following XPath: //food/name. This translates to: take the first food tag and return the contents of it name node.

Scraping a whole XML document

Now the example above is fine when you need just a single node from your XML document URL. What if you want to scrape the whole contents of that XML? Thankfully we can combine the WEBSERVICE and FILTERXML functions with Array Formulas.

In the example below I will show you how to acquire all the names of the food items in the menu. You can use a similar technique to get other items.

Input the FILTERXML formula

Input the FILTERXML formula as shown below:

=FILTERXML(B2;"//food/name")

filterxml and webservice example 4

Drag the formula down

Drag the formula down to row 8:
filterxml and webservice example 5

Hit CTRL+SHIFT+ENTER

Hit the following key combo to create and Array Formula: CTRL+SHIFT+ENTER.
That is it. Now in each row you should see the name of a food item from the menu.

Don’t like using Array Functions? You can also use the XPath node index instead:

=FILTERXML(B2;"//food[2]/name")

will return the name of the second food menu item. To replicate this across all items use this example:

=FILTERXML(B$2;"//food[" & (ROW()-ROW(B$4)+1) &"]/name")

Provide you entered this function in cell B2, simply drag it down – the items should automatically complete.

WEBSERVICE functions Restrictions

Now the WEBSERVICE function unfortunately has several restrictions that will cause the function to return a #VALUE! error instead of the string:

  • If you don’t have a working Internet connection (or you are working with a proxy server)
  • Incorrect arguments or URL address
  • If HTTP result is not valid or contains more than the cell limit of 32767 characters
  • URL is a string that contains more than the 2048 characters that are allowed for a GET HTTP request
  • Protocols that aren’t supported, such as ftp:// or file://

Excel WEBSERVICE summary

The WEBSERVICE and FILTERXML functions are a great step forward to enabling access to Internet resources. These still have unfortunately a lot of limits. Especially when most websites have HTML files that exceed the 32727 character limit and often don’t parse as XML files.

This is where my VBA Web Scraping Kit fills the gap together with my Scrape HTML AddIn. The Kit has all the Web Scraping scenarios I consider possible in Excel where as the Scrape HTML AddIn extends a little the constrains of the WEBSERVICE and the FILTERXML functions

Want to learn Web Scraping?

Not satisfied? Want to know more about Web Scraping in Excel using VBA? Read my zero-to-hero Web Scraping Tutorial.

In this article, we will explaining how to implement a web service call from Microsoft Excel. The prerequisite for this? We must have web service toolkit installed.

EXCEL and the Web Services Toolkit

First, the Microsoft Excel environment has to be prepared. For use with Office 2003, Microsoft delivers the Web Services Toolkit 2.01 for download at:
http://www.microsoft.com/downloads/details.aspx?FamilyID=fa36018a-e1cf-48a3-9b35-169d819ecf18&DisplayLang=en

After the installation, the Web Services plug-in can be found in the Excel VB editor under Extras > Web Service References.
Excel is now ready to import WSDL files for the automatic creation of classes and data types to call the corresponding web services.

Creating the Web Service in SAP

The next step is to generate a web service from the SAP RFC function module and t expose it as WSDL file.
For example: convert RFC function module Z_ BAPI_XXXX_CREATEFROMDATA (any RFC enables function module) into a web service.

  • In SE37, go to Utilities->Create Web Service and follow the simple steps.

  • Go to transaction SOAMANGER and generate the WSDL.

Building the EXCEL Application

Now everything is prepared for the EXCEL application.

  • From the VB editor, choose «Web Service Reference» and mark the «Web Service URL» checkbox.

  • Type the full address of the WSDL file (e.g. C:Z_XYZ.xml).

  • A search result should appear (as shown in below snapshot).
    If the WSDL file is correctly spelled and no search result appears, then it means WSDL file may be incorrect. One reason may be that in SAP, the input and output types are different (e.g. upper case for input fields, lower case for output fields).

  • Check the service and press the «add» button. The toolkit will parse the file and create type definitions and classes in the VB editor.

Wizard Results

After the upload of the WSDL file, the toolkit has added new classes of different types to the EXCEL project.
Some classes represent the table structures. In the example, the interface consists of the tables and other simple import structures leading to the structure classes (for the businesspartner tables e.g.:struc_BAPIBUS1037VBKAKOMCR).

Two other classes provide the objects for working with the web service. The method for calling the service in the example is in a class called

clsws_zcreatesalesactivity               

And here the method for calling the service is implemented:

Public Sub wsm_Z_XXXX_CREATEFROMDATA (ByRef ar_BUSINESSPARTNER As

Variant, ByRef ar_GENERALDATA As Variant, ByRef ar_RETURN As Variant,

ByVal obj_SENDER As struct_BAPISENDER, ByVal str_TESTRUN As String)

Note that all table parameters are of type «variant», simple structures are of respective type «struc_xxx» and simple variables are of type «string».
In case of individual other applications, the classes and type definitions need to be checked: All tables and structure parameters from the function interface should appear as class modules named struc_xxx, including the type definitions for all fields. If not, check for restricted words in the data definitions of the WSDL file.

These fields are converted by the Web Services Toolkit in Excel according to

Public FROM_DATE As date

To avoid deserialization failed errors in the Web Service call, all «date» fields must be redefined to «string».

Public FROM_DATE As String

Calling the Service

To call the web service, an object needs to be created:

Dim SalesActivityWS As New clsws_zCreateSalesActivityS

Then all input tables need to be filled. This can be achieved for all tables as follows. First declare the table variables as ?Variant?. For example, for the businesspartners:

Dim ar_BUSINESSPARTNER as variant

Additionally, a variable of type struc_BAPIBUS1037VBKAKOMCR is needed to fill the input data. To account for more than one entry, the variable is defined as array.

Dim _StrucBusinesspartner(2) as struc_BAPIBUS1037VBKAKOMCR

Now the structure _StrucBusinesspartner can be filled from a corresponding EXCEL table or by use of VB input forms according to the needs. Finally, the input variables are transferred:

ar_BUSINESSPARTNER = _StrucBusinesspartner

And the service is called.

Call SalesActivityWS. wsm_Z_XXXX_CREATEFROMDATA ( ar_BUSINESSPARTNER,

ar_GENERALDATA, ar_RETURN, obj_SENDER, str_TESTRUN)

After the execution of the service, all ar_RETURN fields can be evaluated.

Possible Errors

If the deserialization error occurs, check again for remaining fields of type date or lower case field names.

Another error might read «too many open connections». This means the service could not log on to SAP. Check the user name and password provided in transaction SICF. 

If your spreadsheet needs to access constantly updated data, or if you need to access services hosted on another computer, Excel’s Web Services support will enable you to get connected.

SOAP-based Web Services have been a key part of Microsoft’s plans for .NET, as well as a common feature of toolkits from other vendors. SOAP (the acronym doesn’t mean anything) is a protocol that uses XML to transmit information between systems. In the case you’ll explore here, it’s used to call procedures and return values. A companion specification, Web Service Definition Language (WSDL), describes Web Services so that applications can connect to them easily. Microsoft’s Web Services Reference Tool can take a WSDL file and generate VBA code your application can use to access SOAP-based web services.

This tutorial uses Excel features that are available only in Excel XP and Excel 2003 on Windows. Earlier versions of Excel do not support this, and neither do current or announced Macintosh versions of Excel.

Making this work requires downloading the Office Web Services Toolkit. As its location has changed a few times, it’s easiest to go to http://www.microsoft.com/downloads/search.aspx and search for «Office Web Services Toolkit». Separate versions are available for Office XP and Office 2003. You’ll need to install this toolkit, using the directions that come with it, before proceeding with this tutorial.

Once you’ve installed the toolkit, you can start connecting your spreadsheet to web services. To get to the Web Service References Tool (its name inside of Excel), you’ll need to select Tools » Macro » Visual Basic Editor. On the Tools menu of the VBE, you’ll find Web Services References…. Selecting this brings up the dialog box shown in figure.

The Microsoft Office Web Services Toolkit in action

figs/exhk_0821.gif

You can use the search features in the top left of this dialog to find services through Microsoft’s Universal Discovery, Description and Integration (UDDI) service, or you can enter a URL for the WSDL file at the lower left. You can find a listing of public services at http://xmethods.net/, though you should definitely test to make sure the services still work before you integrate them with your spreadsheets. Many services also require license keys and sometimes license payments, but for this example you’ll use one that is available for free. It returns the IP address for a given domain name.

Start by telling Excel which service you want to use-in this case, http://www.cosme.nu/services/dns.php?wsdl. Enter that value in the URL: box at the bottom left and click Search. A search result of dns will appear in the top right, as shown in figure. Check the box to its left.

Telling the Web Services Toolkit to generate code for a web service

figs/exhk_0822.gif

Clicking the Add button will make Excel generate VBA code for the service, as shown in figure.

VBA code generated by the Web Services Toolkit for accessing the dns service

figs/exhk_0823.gif

Next, close the VBE and set up a very simple spreadsheet such as the one shown in figure.

A spreadsheet for adding web services

figs/exhk_0824.gif

To add a button for calling the service, display the Control toolbar by right-clicking a toolbar and choosing Control Toolbox from the pop-up menu. Click the button icon, and then click the spreadsheet wherever you want the button to go. Right-click the button, and choose Properties from the pop-up menu. Under Name, enter GetData; under Caption, enter Get IP Address. Close the Properties dialog box, and your spreadsheet should look something like that shown in figure.

Spreadsheet with button for calling web services

figs/exhk_0825.gif

To add the final piece, right-click the button you added and choose View Code. In the window that appears, enter this subroutine:

Private Sub GetData_Click( )
    Dim info As New clsws_dns
    Dim name As String
    Dim IP As String
    name = Range("B2").Text
    IP = info.wsm_dns(name)
    Set IPRange = Range("B3")
    IPRange.Value = IP
End Sub

This code is pretty simple. It references the object the toolkit created for the web service, and creates variables for the name and IP address. It collects the name from cell B2, calls the web service with the name as an argument, and then puts the value returned into cell B3. Once you’ve entered this code and closed the VBE, you can leave design mode by making sure the triangle and ruler icon at the left of the Control toolbar isn’t highlighted. The spreadsheet will now enable you to enter a domain name in cell B2. Clicking the Get IP Address button will put the IP address corresponding to that domain name in cell B3. Figures show this spreadsheet in action with different domain names.

A retrieved IP address

figs/exhk_0826.gif

IP address resolution is one of the simpler services out there, but many times services this simple can be very useful in a spreadsheet — for instance, for currency converters, price retrieval, postal code processing, and much more. You don’t even need to learn about SOAP or WSDL to use these services, as the Web Services Toolkit takes care of all of that for you.

A few caveats are worth mentioning, however. First, the computer has to be connected to a network for a web service to work. You probably don’t want to create spreadsheets that depend heavily on web services if their users will be working on them at 30,000 feet and will be thoroughly disconnected. (Spreadsheets such as this one, which uses a web service to populate fields but doesn’t need to be connected constantly, are probably OK.)

The other major issue with web services generally is that the field is in significant flux. At the time of this writing, SOAP had moved from Version 1.1 to 1.2, and a new version of WSDL was under development; what’s more, many people feel UDDI might eventually be replaced with other technologies. For now, be certain to test the services you use, and keep an eye out for new versions of the Office Web Services Toolkit.

by updated Aug 01, 2016

Практически любая офисная деятельность связана с добавлением информации в таблицы или ее редактированием. Однако не на каждом компьютере установлен полный программный пакет MS Office. Да и на мобильное устройство его не загрузить. В этом случае можно прибегнуть к помощи сервисов, позволяющих создавать и редактировать таблицы в Excel онлайн.

  • Специфика сервисов со встроенным Excel
  • Microsoft Excel онлайн – лучшие альтернативы
    • Office.Live — сервис для работы с электронными таблицами
    • Google Таблицы — полная совместимость с формулами из Excel
    • OnlyOffice — является полноценной заменой MS Office
    • ZOHO Sheet — онлайн-сервис для создания электронных таблиц
    • Онлайн-сервисы Яндекс Диск и Mail.Ru
    • OffiDocs XLS spreadsheet — поддерживает основные функции Excel
    • EtherCalc
  • Заключение

Сервисы со встроенным Excel функционируют на основе интернет-подключении. При нестабильном подключении к сети они перестают работать. Это нужно учесть при выборе подобного подхода к работе таблицами. У некоторых веб-продуктов отсутствуют важные функции классического программного обеспечения Excel, например, работа с формулами, вставка информации из баз данных и т. д.

На таких платформах зачастую требуется регистрация. После ее успешного завершения пользователь получает доступ к онлайн-редактору таблиц. Многие подобные веб-сервисы работают бесплатно и автоматически сохраняют пользовательские файлы в облачном хранилище.

На сегодняшний день на просторах всемирной паутины доступно достаточно много различных платформ для работы с электронными таблицами. Эта статья познакомит вас с 7 лучшими сервисами, позволяющими работать в Excel онлайн:

  1. Office.Live.
  2. Google Таблицы.
  3. OnlyOffice.
  4. ZOHO Sheet.
  5. Офисный пакет Яндекс Диска (Яндекс.Документы) и облачного хранилища от Mail.Ru.
  6. OffiDocs XLS spreadsheet.
  7. EtherCalc.

Это онлайн-версия классического программного пакета Microsoft Office. Для получения доступа к функционалу этого сервиса пользователю необходимо авторизоваться. Данный сервис позволяет загружать на компьютеры файлы с разрешением .xlsx, .ods. Сохранить отредактированную электронную таблицу в формате .xls не получится.

Office.Live — сервис для работы с электронными таблицами

Формулы в онлайн-версии Excel присутствуют, но в урезанном количестве. Это же самое можно сказать и о диаграммах. Пользователи получают доступ только к базовому функционалу. С компьютера можно открыть файлы в формате .xls.

Office.Live — сервис для работы с электронными таблицами - 2

С файлами можно работать в режиме совместного доступа. Для этого перейдите в меню «Файл» и выберите пункт «Поделиться».

Пригласить пользователя можно по персональной ссылке или просто сделать документ открытым для редактирования любым сторонним пользователем.

Особенности:

  • есть главные функции десктопного программного обеспечения Excel;
  • работает бесплатно, но потребуется учетная запись Microsoft;
  • есть мобильное приложение для iOS и Android;
  • часть опций урезана (количество формул и т. д.);
  • файл можно редактировать совместно с другими пользователями.

Google Документы – бесплатная платформа, полностью заменяющая собой программный пакет Microsoft Office. Для того чтобы получить доступ к созданию электронных таблиц и других файлов необходимо зарегистрироваться или авторизоваться с помощью Google-аккаунта. Любые изменения в электронной таблице сохраняются мгновенно. Доступ к данным возможен с компьютера, смартфона, планшета.

Google Таблицы — полная совместимость с формулами из Excel

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

Google Таблицы — полная совместимость с формулами из Excel - 2

Достоинства платформы:

  • Бесплатный редактор электронных таблиц.
  • Понятный пользовательский интерфейс.
  • Полная совместимость с формулами из Excel.
  • Возможность организовать бесплатную совместную работу над проектом.
  • Без прямой ссылки на файл нельзя воспользоваться данными.
  • Присутствует поддержка импорта данных из внешних источников.
  • Мгновенное сохранение всех изменений на облачное хранилище Google.
  • Есть приложение для мобильных устройств.

Это готовый пакет онлайн-продуктов, который является полноценной заменой MS Office. Платформа нацелена на малый и средний бизнес, совместную работу над проектами. Бесплатный пробный период составляет 30 дней. Стоимость лицензии для домашнего использования – €139. Она оплачивается один раз и действует бессрочно.

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

OnlyOffice - является полноценной заменой MS Office

Таблицы и другие документы будут доступны всем участникам группы. Реализованы комментарии, правки.

Особенности OnlyOffice:

  • Понятный пользовательский интерфейс;
  • Полная поддержка функционала Excel;
  • Можно использовать формулы, макросы;
  • Отзывчивая служба технической поддержки;
  • Высокий уровень защиты информации.

Сервис бесплатный для всех пользователей. Доступна авторизация через Facebook и Google. Есть возможность зарегистрировать отдельный аккаунт. Язык интерфейса меняется в настройках профиля. Сервис работает с форматами .xls, .ods, .csv, .tsv и .xls. Пользовательский интерфейс похож на последние версии Microsoft Excel.

ZOHO Sheet — онлайн-сервис для создания электронных таблиц

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

Ключевые особенности:

  • бесплатный для всех пользователей;
  • есть поддержка русского языка;
  • поддерживает работу с формулами и графиками;
  • автоматически сохраняет файлы в облачном хранилище;
  • есть возможность отправки документов на печать;
  • есть официальное приложение для Android и iOS.

Файлы, создаваемые в этом онлайн-сервисе, можно загрузить на компьютер в форматах tsv, html, xls, xlsx, pdf, cs, ods.

ZOHO Sheet — онлайн-сервис для создания электронных таблиц - 2

У этих сервисов схожий функционал, так как они официально приобрели лицензию на MS Online. Рассмотрим функционал на примере онлайн-сервиса от Mail.Ru. После авторизации и открытия персонального облачного хранилища пользователю предлагаются создать папку или документ. Также можно загрузить уже готовый файл. Для запуска Excel онлайн выберите вариант «Создать Таблицу».

Онлайн-сервисы Яндекс Диск и Mail.Ru

После этого на экране появится классический интерфейс MS Excel. Файл автоматически сохраняется в формате xlsx. Над таблицами могут работать одновременно несколько человек. Для этого нужно поделиться файлом и сделать его открытым для редактирования другими пользователями. Загрузить таблицы на компьютер можно в формате xlsx или ods.

Онлайн-сервисы Яндекс Диск и Mail.Ru - 2

Особенности сервиса:

  • функционал идентичен классическому Microsoft Excel за исключением разнообразия поддерживаемых форматов сохранения данных;
  • не требует оплаты;
  • для работы необходим аккаунт Mail.ru или Яндекс;
  • работает быстро даже на слабых ПК;
  • автоматически сохраняет файлы в облаке.

Бесплатный онлайн-редактор таблиц, не требующий регистрации. Поддерживает основные функции Excel. Запускается сразу на русском языке. Поддерживает работу с таблицами в формате xlsx и xls. Для загрузки файла с компьютера кликните на «Files».

OffiDocs XLS spreadsheet - поддерживает основные функции Excel

Данный сервис автоматически подтягивает cookies из браузера, поэтому сможет восстановить файл даже после закрытия окна браузера. Но для регулярной работы рекомендуется зарегистрироваться на сайте.

Достоинства:

  • бесплатный и на русском языке;
  • не требуется обязательная регистрация;
  • поддерживает основные функции Excel (формулы, сортировку и т. д.);
  • сохраняет файлы в режиме онлайн (после регистрации);
  • есть функция отправки отредактированного файла на указанный адрес электронной почты.

Бесплатный сервис, не требующий регистрации и оплаты услуг. Его пользовательский интерфейс частично русифицирован. Данный онлайн-инструмент поддерживает основные функции Excel, но может оказаться трудным в освоении для пользователей, привыкших работать в классическом MS Office.

EtherCalc

Прямо на главной странице сервиса можно загрузить с компьютера файл в формате .csv, .ods, .xlsx, .xlsm или .xls.

EtherCalc - 2

Особенности:

  • бесплатный и русифицированный;
  • поддерживает различные форматы файлов;
  • широкий функционал;
  • можно связаться с разработчиками при возникновении проблем с сервисом.

Выбор сервиса Excel онлайн зависит от задач, стоящих перед пользователем. Лучшим продуктом в этой сфере считаются Google Таблицы. Этот сервис предоставляет множество возможностей для работы с таблицами, включая создание собственных скриптов и добавление сторонних плагинов. Файл и любые изменения в нем автоматически сохраняют в облачном хранилище Google. Аналогичными функциями обладает Excel в облаке от Mail.Ru и Яндекс.Диске.

Для быстрого просмотра простых электронных таблиц подойдут сервисы EtherCalc и OffiDocs XLS spreadsheet. Эти онлайн-продукты быстро работают в любом браузере и не требовательны к производительности компьютера пользователя.

Пожалуйста, оставляйте свои отзывы по текущей теме статьи. За комментарии, подписки, дизлайки, отклики, лайки низкий вам поклон!

  • Download source files — 30.4 Kb

Introduction

Web Services are reusable applications that expose an interface that can be accessed over the internet. Web services use XML to provide a platform and language independent implementation of distributed application services and information.

Web services allow us to utilize the services provided by the other organizations. We can consume the web services not only from applications developed using various programming languages but also from Microsoft office tools like Access, Excel, and Word etc. In this article we will explore how we can access a web service from Microsoft Excel using Microsoft Office XP Web Services Toolkit 2.0, which simplifies the process of accessing and utilizing an XML webservice.

Details

 Sample screenshot

The example includes a webservice, which returns 5 countries and their capitals. Capitals.xls has 2 buttons. When a user clicks on the display button, Capitals.xls sheet accesses the web service and displays the data provided by the webservice. Clicking on the clear button clears the data from the XL sheet.

Sample screenshot

Now lets see how we can develop this application. Lets start by creating an excel sheet. Drag and drop a button from the visual basic toolbox. (You can get the VB toolbox from the View menu). Now to add a reference to the web service . For this we will use the VB editor (Alt-F11). From the tools menu bar add the reference of Microsoft Soap tool kit. Now lets add the web service reference. For this click on the web reference in the tools menu of the VB editor. You can either search for a web service or if you know the URL of a web service u can directly add it. Now you are ready to access the web service. We can do this by creating an object of the web service class and displaying the result in the excel sheet.

Dim module As clsws_Service1
Dim value As String
Dim data() As String
Dim range1 As Range
Dim range2 As Range
Dim j As Integer
Set module = New clsws_Service1
value = module.wsm_getCapitals()
data = Split(value)
j = 0
Application.ActiveSheet.Range("A4").Activate
Set range1 = Range(Range("A4"), Range("A22"))
For Each range2 In range1
    If j < 9 Then
     range2.Offset(0, 3).value = data(j)
     range2.Offset(0, 4).value = data(j + 1)
     j = j + 2
   End If
Next range2

Working on .NET for last 6 years. Currently working for TCS.

There are a whole slew of web services available in Dynamics AX 2012, but how do you use them?In this example we will show how you can publish the web services so that you can use them in an application, and also show an example of the web services in action by using them to create a simple sales order import routine from Excel. Introduction to Services and Application Integration Framework In here you will see all of the default web services that are published with the system.All we need to do is define our own services. Creating a new Service Group All of the services are set up in AOT. If you browse through the application, you will see all of the services that were in the IAF section of the System Configuration Just create a new Service Group… Give it a name… Adding Your Service Now drag the service that you want to publish from the Services section into your Services Group.In this case we will use the SalesSalesOrderService, which will allow us to access all of the properties and methods for Sales Order Management. Deploying Your Service Now deploy the service. This will create the web service for you and allow you to access the service and WSDL information. Done. Now if you look in the Application Integration section again, you will find that your service is available.If you look at the properties of the service, then you will find the location of the service WSDL as well. Browsing to the WSDL will show you all of the interfaces for the service. Consuming the Service In Excel Now that you have the service we will be able to create an application that consumes the service and does something with it.To do this we will use Visual Studio and create an app. For this example, the application will be an Excel Add In for importing sales orders. Before we create the application, we will add the web service into the application as a Service Reference. All you need to do to add the service is to give the Service Discovery form the location of the WSDL that Dynamics created for us in the prior section, and it will discover the published services. Once discovered, the project will grow a little… To make the interface a little nicer, we will add the buttons for the application as a Ribbon Bar add-in, so just add one of those to the project. And we will add two buttons to the add-in for setting up and importing the data. The setup option is pretty simple. It will just add the field headings so that we know the different fields that are required. To use the web service in the code, make sure that you add the reference to the service in the header so that we are able to access all of the intellisense and objects for the service. And then with a little bit of code, we are able to step through the rows, and create the sales orders through the standard API’s in Dynamics. Running The Excel Import Add-In Now when you run Excel, a new tab shows up in the ribbon bar for setting up your spreadsheet and also importing the data into Dynamics. Just click on the Setup button, and it will tell you the format and the fields that you need to fill in. Add some data to the spreadsheet, and then press the Import button. Now all of the orders are in Dynamics. That was easy. Link to Original: http://sdrv.ms/VkIgui

In a VBA module in excel 2007, is it possible to call a web service? If so, any code snippets? How would I add the web reference?

bluish's user avatar

bluish

25.9k27 gold badges120 silver badges179 bronze badges

asked Jan 23, 2009 at 22:49

Jeremy's user avatar

2

loopasam's user avatar

loopasam

2,9672 gold badges21 silver badges21 bronze badges

answered Jan 23, 2009 at 22:53

Mostlyharmless's user avatar

2

answered Jan 29, 2010 at 21:05

1

In Microsoft Excel Office 2007 try installing «Web Service Reference Tool» plugin. And use the WSDL and add the web-services. And use following code in module to fetch the necessary data from the web-service.

Sub Demo()
    Dim XDoc As MSXML2.DOMDocument
    Dim xEmpDetails As MSXML2.IXMLDOMNode
    Dim xParent As MSXML2.IXMLDOMNode
    Dim xChild As MSXML2.IXMLDOMNode
    Dim query As String
    Dim Col, Row As Integer
    Dim objWS As New clsws_GlobalWeather

    Set XDoc = New MSXML2.DOMDocument
    XDoc.async = False
    XDoc.validateOnParse = False
    query = objWS.wsm_GetCitiesByCountry("india")

    If Not XDoc.LoadXML(query) Then  'strXML is the string with XML'
        Err.Raise XDoc.parseError.ErrorCode, , XDoc.parseError.reason
    End If
    XDoc.LoadXML (query)

    Set xEmpDetails = XDoc.DocumentElement
    Set xParent = xEmpDetails.FirstChild
    Worksheets("Sheet3").Cells(1, 1).Value = "Country"
    Worksheets("Sheet3").Cells(1, 1).Interior.Color = RGB(65, 105, 225)
    Worksheets("Sheet3").Cells(1, 2).Value = "City"
    Worksheets("Sheet3").Cells(1, 2).Interior.Color = RGB(65, 105, 225)
    Row = 2
    Col = 1
    For Each xParent In xEmpDetails.ChildNodes
        For Each xChild In xParent.ChildNodes
            Worksheets("Sheet3").Cells(Row, Col).Value = xChild.Text
            Col = Col + 1
        Next xChild
        Row = Row + 1
        Col = 1
    Next xParent
End Sub

Caleb Bell's user avatar

answered Sep 14, 2015 at 12:42

Adnan Shahmir Ahmed's user avatar

Excel 2013 Read Data from a web service and bash the JSON till you can get what you want out of it (given the JSON will always be in the same format).

This code should just work without the need for any plugins.

You will need your own free API key from the currency converter website though.

I used it to load the USD to GBP value into a cell on my sheet.

Option Explicit

Sub Test_LateBinding()

    Dim objRequest As Object
    Dim strUrl As String
    Dim blnAsync As Boolean
    Dim strResponse As String

    Set objRequest = CreateObject("MSXML2.XMLHTTP")
    strUrl = "https://free.currconv.com/api/v7/convert?q=USD_GBP&compact=ultra&apiKey=[MY_API_KEY]"
    blnAsync = True

    With objRequest
        .Open "GET", strUrl, blnAsync
        .SetRequestHeader "Content-Type", "application/json"
        .Send
        While objRequest.readyState <> 4
            DoEvents
        Wend
        strResponse = .responsetext
    End With
    
    Dim responseArray() As String
    responseArray = Split(strResponse, ":", -1)
    
    Dim value As String
    value = responseArray(1)
    
    Dim valueArray() As String
    valueArray = Split(value, "}", -1)
    
    Dim finalValue As String
    finalValue = valueArray(0)
    
    Sheet2.Cells(22, "C") = finalValue
End Sub

answered Jul 30, 2021 at 5:21

Andy's user avatar

AndyAndy

2,0591 gold badge28 silver badges28 bronze badges

Понравилась статья? Поделить с друзьями:
  • Web service from excel
  • Web server one word
  • Weekday excel что это
  • Weekday excel на русском
  • Weekday excel как пользоваться