0

I have an Excel-file with multiple sheets. The goal of the file is to provide self-employed persons a calculation beforehand of what their costs are (taxes and other cost items) based on their predicted earnings. 10 years ago a company stole my first version of the file and sold it to users.

  1. So protection of my formulas is essential.
  2. The second thing is the data of the users. I need a solution by which users can trust the protection of their data. So the data have to stay with the users themselves or it have to stay on a server in the EU.
  3. Users will use the tool multiple times a year. So ideally their data can be reused / modified from the last session.
  4. I'm self-employed too, so I'm not looking for an very expensive solution

I can think of 2 different options:

  • I provide users with their own Excel file, that in one way or another interacts with my source file that I have online
  • I convert my file to a web solution and users can login to that platform (I read this post, but I don't know if they meet my requirements above: How to convert an Excel spreadsheet into an interactable web page?)

I hope there is someone who has a good solution for my problem.

1 Answer 1

2

1. Web-App

I convert my file to a web solution

To convert you Excel file into a Web-App, I think the link you posted has many solutions that are worth trying. It's hard to tell if they fit your requirements or not, but feel free to edit your question if you've tried them and there is still a particular requirement none of theses solutions support.

2. Excel

I provide users with their own Excel file, that in one way or another interacts with my source file that I have online

I think what you describe is analogous to the creation of an add-in. Add-ins allow you to extend Excel functionalities and you can make your calculations available to your users without having the formulas openly accessible.

I'm not aware of any software that can convert an Excel file into an add-in directly, but there are multiple softwares/tools that can help you create such an add-in.

2.1 VBA

You could create a VBA add-in using the Visual Basic Editor (VBE) that comes pre-packaged with Excel. You could distribute this password protected add-in with your user-defined functions (UDF). Your users could use these functions inside Excel without you having to host their data.

Note that you could also use a macro-enabled workbook (.xlsm) that contains VBA code which isn't an add-in, but it would be a regular Excel workbook where you've "added in" your calculation logic.

This solution implies that you would need to convert your Excel formulas into VBA, but luckily VBA has access to most Excel functions via the WorksheetFunction object which can help you with that.

Regarding the privacy of your source code, password protected VBA projects aren't full-proof and there are ways for tech savvy users to bypass the password or for users to install some password-breaking software. Some tools try to make it harder like Unviewable+, but it's not full-proof either since there are ways to bypass those protections as well.

2.2 Office.js add-ins

Office.js allows you to distribute an add-in that works on both Excel for Desktop and Excel Online. It allows you to have a front end and an optional backend. The front end uses JavaScript (combined with HTML and CSS) and the back end is your server code, so it is similar to a web-app in that sense.

Regarding the privacy of your source code, if you implement your calculation logic inside the front end with JS, it would be possible to look at the code with the Inspect feature, so it won't be protected. If you want your code to be protected, it needs to run on your server and the add-in front end must be making calls to it in order for your calculations logic to remain private.

However, implementing a back-end server isn't easy if you don't have programming experience. If you have some VBA experience, VB.Net has some similarities, but there is still some work to be done in order to convert any logic from one to the other.

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

2.3 Other Add-in types

Other (older) add-in types exist to distribute your functions as an add-in like VSTO or Excel-DNA, but you'd have to use .NET for that. Furthermore, you'd still have the issue that your code will be running on the user's machine, so someone using tools like ILSpy could be able to retrieve your code from the compiled executable file where you add-in resides.

If you want to prevent decompilation from being a threat, you'd again need to implement some sort of back-end server that your add-in would need to call in order to get the results of the calculations to the user.

2.4 Conclusion

Regarding the privacy of the customers data, add-ins have the advantage that the client is in charge of there own data and they can use the tools when they need it without your intervention.

Regarding the privacy of your methods of calculation (aka. source code), it all depends on the level of privacy you want for your code. As long as code is running on someone's machine, there is always a way for them to reverse engineer it. Some techniques or tools can be used to obfuscate the code as much as possible, but there is no 100% protection against someone who is highly motivated to stealing your code/logic.

VBA solutions are easier to implement for a beginner, but less private. Office.js and .NET addins with calculation logic on a remote server are harder to implement, but you would have certainty that your intellectual property is safe from prying eyes (unless your server gets hacked, but that's another topic).

About pricing, the VBA developer environment (VBE) is already included with Excel at no extra cost and for developing any of the other types of add-ins I mentioned, you can use a community version of Visual Studio which is free for individuals.

In both cases, the real price to pay is the time it takes to develop the solution you are after.

2
  • As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.
    – Community Bot
    Jul 23, 2023 at 9:49
  • I've edited my answer, but as it is written, this comment is unclear, how does my answer not address the question? Aug 2, 2023 at 19:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.