ExcelDna

Excel-DNA - Free and easy .NET for Excel. This repository contains the core Excel-DNA library.

ZLIB License

Stars
1.2K
Committers
32

Bot releases are hidden (Show)

ExcelDna - Excel-DNA v1.7.0 Latest Release

Published by govert 10 months ago

Excel-DNA v1.7.0 - Release Notes

The main updates for this release are the following.

  • Expanded support for SDK-style project files (targeting both .NET Framework 4.x and .NET 6).
  • Support for packing native dependencies.
  • Automatic dependency detection for packed add-ins under .NET 6.
  • Improved robustness and better error messages during add-in startup.
  • Improved COM Server build and packing support using DsCom.
  • Added simple logging configuration under .NET 6.

This release is recommended for all Excel-DNA add-ins. Projects should migrate to newer the SDK-style project files, whether targeting .NET Framework 4.x or .NET 6.

Runtime support

Excel-DNA v1.7.0 supports:

  • .NET Framework (v4.6.2 or later), and
  • .NET 6 (v6.0.2 or later) with the '.NET 6 Desktop Runtime' installed.

Support for newer .NET runtimes will follow in a future Excel-DNA version.

It is recommended that add-ins to be distributed outside a company, or that will run in a less controlled software environment with other add-ins, continue to target .NET Framework 4.x. This has the advantage of a stable runtime that need not be separately installed and serviced, and being able to load without interfering with other add-ins.

Add-ins targeting .NET 6 may be unexpectedly disabled by future add-ins targeting a newer version of .NET, or conversely might block other add-ins that target a newer version. Hence, some care should be taken where such add-ins are externally distributed for use as third-party add-ins in.

Installation

Excel-DNA add-in are most easily created by installing the 'ExcelDna.AddIn' package from NuGet.

An archive file containing the library outputs and the two main NuGet packages are attached to this GitHub Release as an alternative distribution option to the NuGet package sources.

Support

The preferred support channel for Excel-DNA is the Excel-DNA Google Group. Direct corporate support agreements are also available, for those using Excel-DNA in a mission critical setting, or who would like easy access to direct support.

Sponsorship

Excel-DNA is registered on GitHub Sponsors. All contributions are used to fund further development.

Thanks

A big thank you to our donors, sponsors and corporate support customers. Your support is crucial in keeping this project alive and up-to-date.

Thanks to everyone who has participated by asking questions, contributing to discussions, submitting fixes to the repository, or helping spread the word about our library. A shout-out to Sagi Shahar for helping to consolidate the website and documentation fragments into one place.

A very special thanks goes to Sergey Vlasov for doing most of the development work in recent years. Sergey also creates a great family of Visual Studio extensions and tools worth checking out.

And finally, and most importantly, thank you to all the developers and Excel user who use Excel-DNA, whether it's just occasionally or every day. You are the reason this project exists.


Govert van Drimmelen
[email protected]
12 December 2023

ExcelDna - Excel-DNA v1.1.1

Published by govert over 4 years ago

Excel-DNA version 1.1 implements workarounds for two recent changes in Excel behaviour:

  • RTD servers based on ExcelRtdServer, and streaming functions based on IExcelObservable stopped updating after recent (early 2020) Excel updates.
  • When loaded into an elevated Excel process (running As Administrator) the on-demand COM registration (used for ribbon and CTP loading) started failing (mid 2020).

The update also introduces strong-naming of the Excel-DNA assemblies (thanks @augustoproiete).

You can find a full list of changes included in this release is on the v1.1 milestone.

Version 1.1 is intended to be the final version of Excel-DNA to support legacy .NET Framework (< 4.5) and Excel (< 2007) releases.

Please ask questions and provide feedback via the Excel-DNA Google group.

ExcelDna - Excel-DNA v1.0.0

Published by govert over 5 years ago

Version 1.0 will be the final version to support legacy .NET Framework (< 4.0) and Excel (< 2007) releases.

The update includes a number of bug fixes as well as improvements to the build-time Visual Studio integration:

  • Improve build tasks - more reliable clean-up and debugger detection (thanks to @augustoproiete)
  • Improve RTD and async QueueAsMacro reliability
  • Improve install process of ExcelDna.AddIn NuGet package (now requires NuGet 2.5) (thanks to @augustoproiete)
  • Change how ExcelDnaUtil.Application works in Protected View - try harder but don't cache
  • Call UnhandledExceptionHandler for macros (ExcelCommands) too
  • Add XML schema for .dna file (thanks to @augustoproiete)
  • Add option to pack .pdb files (thanks to @lanfeust69)
  • Fix exception handling from native async functions (thanks to @ittegrat)
ExcelDna - Excel-DNA v1.0.0-rc1

Published by govert over 5 years ago

Version 1.0 will be the final version to support legacy .NET Framework (< 4.0) and Excel (< 2007) releases.

The update includes a number of bug fixes as well as improvements to the build-time Visual Studio integration:

  • Improve build tasks - more reliable clean-up and debugger detection (thanks to @augustoproiete)
  • Improve RTD and async QueueAsMacro reliability
  • Improve install process of ExcelDna.AddIn NuGet package (now requires NuGet 2.5) (thanks to @augustoproiete)
  • Change how ExcelDnaUtil.Application works in Protected View - try harder but don't cache
  • Call UnhandledExceptionHandler for macros (ExcelCommands) too
  • Add XML schema for .dna file (thanks to @augustoproiete)
  • Add option to pack .pdb files (thanks to @lanfeust69)
  • Fix exception handling from native async functions (thanks to @ittegrat)
ExcelDna - Excel-DNA v0.34.6

Published by govert over 7 years ago

Version 0.34 introduces a much improved build procedure for add-ins created using the NuGet package (thanks to a fantastic work by @augustoproiete !) This replaces the error-prone post-build steps we had with a custom build helper and allows easier build output customization.

Various bug fixes and smaller improvements are also included in this version:

  • Add ExplicitExports="false" to NuGet .dna file template
  • Fix getting Application from ProtectedViewWindow
  • Add attempts to get Application object from all windows of class EXCEL7.
  • Fix ExcelAsyncUtil.Observe re-open restart - broken by other fixes in the previous version. Add option to not restart.
  • Change ExcelRtdServer.ConnectData to be more careful about raising an update notice. Calls to Topic.UpdateNotify during the ConnectData overload are now always ignored. If the topic value is updated (through Topic.UpdateValue) during ConnectData, and the same value is returned from ConnectData, then no spurious UpdateNotify is raised. If the value returned from ConnectData differs from Topic.Value, UpdateNotify will still be raised.
  • Allow AccessViolation exceptions to be caught under .NET 4.0 - change marshaling wrapper from DynamicMethod to MethodBuilder.
  • Fix QueueAsMacro failure after paste live preview.
  • Fix AssemblyResolve re-entrancy race condition.

The easiest way to create an Excel-DNA add-in is by creating a class library project in Visual Studio and then installing the ExcelDna.AddIn NuGet package.

ExcelDna - Excel-DNA v0.34.5-rc5

Published by govert over 7 years ago

This is a release candidate for Excel-DNA v0.34.

Version 0.34 introduces a much improved build procedure for add-ins created using the NuGet package (thanks to a fantastic work by @augustoproiete !) This replaces the error-prone post-build steps we had with a custom build helper and allows easier build output customization.

Various bug fixes and smaller improvements are also included in this version:

  • Add ExplicitExports="false" to NuGet .dna file template
  • Fix getting Application from ProtectedViewWindow
  • Add attempts to get Application object from all windows of class EXCEL7.
  • Fix ExcelAsyncUtil.Observe re-open restart - broken by other fixes in the previous version. Add option to not restart.
  • Change ExcelRtdServer.ConnectData to be more careful about raising an update notice. Calls to Topic.UpdateNotify during the ConnectData overload are now always ignored. If the topic value is updated (through Topic.UpdateValue) during ConnectData, and the same value is returned from ConnectData, then no spurious UpdateNotify is raised. If the value returned from ConnectData differs from Topic.Value, UpdateNotify will still be raised.
  • Allow AccessViolation exceptions to be caught under .NET 4.0 - change marshaling wrapper from DynamicMethod to MethodBuilder.
  • Fix QueueAsMacro failure after paste live preview.

The easiest way to test the new version is by installing or upgrading to the pre-release ExcelDna.AddIn 0.34.5-rc5 NuGet package. From the Package Manager Console: Install-Package -Pre ExcelDna.AddIn

ExcelDna - Excel-DNA v0.33.9

Published by govert about 9 years ago

This is the public release of Excel-DNA v0.33.

  • Improve RtdObserver/Async array function handling to ensure RTD DisconnectData when complete.
  • Suppress CustomUI loading when running embedded with /K switch.
  • Fix timer leak in ExcelDnaUtil.QueueAsMacro (incorrect timer id tracking).
  • Allow CommandBars find by Id.
  • Save source files as binary when packing.
  • Add further workaround for RTD bugs in Excel 2010 RTM.
  • Fix memory leak where on-demand registered RTD servers were not garbage collected after ServerTerminate().
  • Change COM registrations (for RTD, ribbon and CTP) to always try machine hive first, before falling back to user hive.
  • Allow byte[] as parameters key in ExcelRtdObservable, to support storing only an opaque hash instead of the full parameter set.
  • Fix race condition between ExcelRtdObserver.OnNext(), DateTime.ToOADateTime() and Excel calling RefreshData().
  • Fix integer return type with IsExceptionSafe=true crashes in marshaling.
  • Update ExcelReference to allow immutable use, mark AddRectangle mutator Obsolete. Add operator== to AsyncCallInfo.
  • Increase number of exports to 10,000.
  • Implement logging mechanism based on System.Diagnostics.Trace.
  • Add CreateCustomTask overloads that take the control explicitly.
  • Clean up ExcelReference internals to only keep extra array of rectangles if needed.
  • Improve RTD and async exception handling for damaged Excel installs.
  • Fix NuGet package paths to use macros when packages are under solution folder.
  • Fix NuGet package install for F# on VS 2015.
ExcelDna - Excel-DNA v0.33.8-rc2

Published by govert about 9 years ago

This release candidate update fixes a few issues in the NuGet installation script, and an unintended breaking change in the use of the XlCall class.

ExcelDna - Excel-DNA v0.33.7-rc1

Published by govert about 9 years ago

This is the first release candidate for Excel-DNA version v0.33.

Binaries are updated and included in the source tree under the Distribution\ directory.

A detailed change log can be found in Distribution\ChangeLog.txt.

This version is also available as a (pre-release) NuGet package:

Install-Package ExcelDna.AddIn -Pre
ExcelDna - Excel-DNA v0.33-b3

Published by govert over 9 years ago

This is an updated Beta release of version 0.33. An initialization bug in Beta 2 that prevented the add-in from starting when ExcelDna.Integration.dll was not present is fixed. All LogDisplay logging is now channeled through the new TraceSource-based logging mechanism.

Binaries are updated and included in the source tree under the Distribution\ directory.

ExcelDna - Excel-DNA v0.33-b2

Published by govert over 9 years ago

This is an updated Beta release of version 0.33. The TraceSource-based logging is now used for all error handling the ExcelDna.Integration. The internals of ExcelReference has also been changed.

ExcelDna - Excel-DNA v0.33-b1

Published by govert over 9 years ago

This is a test release for the new diagnostic logging based on System.Diagnostics.Trace. In particular the warnings and errors logging for function registration have been improved.