Frequent Questions and Answers for Technical Topics
Is your method of formula protection secure?
What do I do if I want to protect a spreadsheet file with license keys, but I don’t need to protect the formulas?
Is it possible to extract the XLS file from the compiled EXE?
Once a spreadsheet is compiled, can the user save the spreadsheet under a new name, and then use it as the newly created spreadsheet?
Is it possible to compile with a hardware lock and limit period usage?
Is it possible for anybody to create the license/registration file for my compiled Excel workbook?
I do not see the “DoneEx” menu item on the Excel ribbon bar?
What do I do if I have a custom ribbon and the “DoneEx” menu item does not appear?
What is an “.xcfg” file?
Is it possible to decompile an EXE file that has been compiled by XCell Compiler?
Why is the size of the compiled EXE file bigger than the original workbook?
What is Computer ID and where do I find it?
How do I get the Computer ID using VBA code?
How do I open the compiled EXE file?
Why do I not see the icon that I have set for my file and how do I fix it?
How can I restore data from an expired EXE?
Where do I find the EXE file’s expiration date?
What if I need to work with formulas after compilation?
How do I overwrite the value in a cell that had a formula before compilation?
Can I save the EXE using “Save As”?
Is Microsoft Excel required to start the compiled EXE file?
How do I grant trusted access to Visual Basic Project?
How can I reduce anti-virus false positives of my compiled EXE file?
How do I enable DoneEx menu?
How to distribute compiled EXE files?
Is your method of formula protection secure?
The DoneEx XCell Compiler compiles all formulas from the xls file into binary code. To this day, this method is the most secure. Even encoding with strong encryption algorithms is not all that secure, because you may need to provide the decrypt key for the user and from that moment your data is decrypted and available for anybody.
What do I do if I want to protect a spreadsheet file with license keys, but I don’t need to protect the formulas?
The main goal of the DoneEx XCell Compiler is the strong protection of spreadsheet algorithms to prevent them from being copied. This goal is reached by compiling all workbook formulas into binary format. This means that after compilation there are no formulas in cells in the compiled EXE. Otherwise, if the formulas are not really securely protected and anyone who has permission to launch your model, (even if it was protected with a password, license key and/or with hardware locking), may copy all of the data and formulas (manually or by using some Excel Add-In) into another unprotected workbook and use your model without any restrictions.
Is it possible to extract the XLS file from the compiled EXE?
Yes, it is possible. Also you can find this file in temporary folder on you disk when compiled EXE is started.
However, This xls file DOES NOT contain any formulas in cells. NONE OF THEM! This file is a data provider between compiled EXE and Excel. It is used to format calculated values and to reflect them into Excel. After compilation all xls formulas are stored in the EXE file (in an unreadable, binary format) but none of them are stored in the xls file. You can even try using this file to see that it does not work anything like the original xls file.
Once a spreadsheet is compiled, can the user save the spreadsheet under a new name, and then use it as the newly created spreadsheet?
If you tie your compiled EXE file to a target computer (feature of the Business Pro license) then your exe file will only work on that computer, even if it was saved with another name.
Is it possible to compile with a hardware lock and limit period usage?
You need to compile your workbook with selected “Hardware Locking” option. You can set the date limit using the registration key tool during registration key generation.
Is it possible for anybody to create the license/registration file for my compiled Excel workbook?
No. Nobody can make license/registration file for your compiled excel files except you. The XCell Compiler is designed such way that only you can do it from your ‘DoneEx XCell Compiler’ registered computers.
I do not see the “DoneEx” menu item on the Excel ribbon bar?
If you do not see the “DoneEx” menu item on the Excel ribbon bar, you need to do the following:
For Excel 2003:
1. Go to Help->About Microsoft Excel menu.
2. Click on Disabled Items.
3. Another dialog will pop up.
4. Select DoneEx XCell Compiler.
5. Click Enable button.
7. Restart Excel.
8. Click on the “Office” button.
9. Click on the “Excel Options” button
10. Click on the “Add-Ins” button
11.In that dropdown box choose the “Com AddIns” item and press “Go”
12. In the window that pops up, you need to check on the “XCell Compiler…” checkbox (if it is unchecked) and click on the “OK” button.
13. Restart Excel one more time and you should finally be able to see the “DoneEx” menu item on the Excel ribbon bar.
For Excel 2007:
1. Click on the Office button
2. Click on the Excel options button
3. Click on the “Add-Ins” button
4. In the “Add-Ins” dropdown menu, choose “disabled items” and then press “Go.
5. In the window that comes up, you need to choose the “XCell Compiler…” from the list of disabled items
6. Click the “Enable” button, if it is not already enabled.
7. Restart Excel.
8. Click on the “Office” button.
9. Click on the “Excel Options” button
10. Click on the “Add-Ins” button
11.In that dropdown box choose the “Com AddIns” item and press “Go”
12. In the window that pops up, you need to check on the “XCell Compiler…” checkbox (if it is unchecked) and click on the “OK” button.
13. Restart Excel one more time and you should finally be able to see the “DoneEx” menu item on the Excel ribbon bar.
For Excel 2010 or higher:
1. Click on the “File” item in the Excel main menu
2. Click on the “Options” item
3. Click on “Add-Ins,”
4. In the drop down menu click on “disabled items” and press “Go”
5. In the window that pops up, you need to choose the “XCell Compiler…”
6. Click on the “Enable” button, if it is not already enabled.
7. Restart Excel.
8. Click on the “File” item in Excel main menu
9. Click on the “Excel Options” button
10. Click on the “Add-Ins” button
11. In that dropdown box choose the “Com AddIns” item and press “Go”
12. In the window that pops up, you need to check on the “XCell Compiler…” checkbox (if it is unchecked) and click on the “OK” button.
13. Restart Excel one more time and you should finally be able to see the “DoneEx” menu item on the Excel ribbon bar.
What do I do if I have a custom ribbon and the “DoneEx” menu item does not appear?
To compile workbook when the “DoneEx” item is not available in the Excel Ribbon menu please follow these steps:
1. You need to add a vba module into your vba project and paste the following piece of code in it:
#If Win64 Then Public Declare PtrSafe Function XCellCompile Lib "SolutionPackerAddIn.dll" Alias "DummyFunc0" () As Long #Else Public Declare Function XCellCompile Lib "SolutionPackerAddIn.dll" Alias "DummyFunc0" () As Long #End If
2. Call this code from the VBA project immediate window:
XCellCompile
OR
Another approach is to compile from the command line by using XCMD.EXE utility.
What is an “.xcfg” file?
The XCell Compiler saves your current compilation settings into a file with that has the name of your workbook along with the “.xcfg” extension. This is a simple text file with data in xml format. The.xcfg file is only useful for compilation so it is not necessary for the exe to function properly. However, if you delete this file then the compiler will have to collect the workbook information again, which will take additional time during compilation.
Is it possible to decompile an EXE file that has been compiled by XCell Compiler?
It is impossible to convert the compiled EXE file into the original xlsm file. There is no program in existence (even we don’t have one) to decompile the EXE files compiled with XCell Compiler..
This is restriction goes hand in hand with workbook copy protection security.
If it were possible to convert the compiled EXE file into the original xlsm file then it would be possible to save the protected workbook into an xlsm file and use it without any restriction on any computer.
Please note that, after compilation, the original xls (.xlsx, xlsm, xlsb) file remains unchanged.
Why is the size of the compiled EXE file bigger than the original workbook?
The size of compiled exe includes our runtime calculate engine, which calculates the cells formulas instead of Excel. Also the exe contains many additional resources you may have added, among them there are your icon and splash screen files.
What is Computer ID and where do I find it?
“CID” is an acronym for “Computer ID,” which is the unique number generated by XCell Compiler using some hardware and system software details. CID is used to identify the target computer.
For our clients, which are using XCell Compiler:
You may copy the Computer ID from “Excel Main Menu”->“DoneEx”->“Cell Compiler”->“About”
For their clients, which are using the EXE files compiled by XCell Compiler:
If the EXE was compiled with “hardware locking” option on, then the Computer ID number can always be found in the “Application”->“About” menu item.
How do I get the Computer ID using VBA code?
Run this code snippet in VBA:
compID = Application.Run("DoneExCommand", 3, "compid")
You can find find details on DoneExCommand in the DoneEx XCell compiler help file in Technical Solutions >> Runtime API Reference >> DoneExCommand section.
How do I open the compiled EXE file?
The compiled workbook is an EXE file and, as any other EXE files in the Windows OS, it should be started by either: double left mouse button clicking it, selecting it with a single left mouse button click and pushing button “Enter” on keyboard, or right mouse button clicking on it and left mouse button clicking on the file name on the menu that pops up (which should be at the top of that menu).
The EXE file should NOT be opened by using File >> Open in Excel.
Why do I not see the icon that I have set for my file and how do I fix it?
it’s possible that your icon file contains only one size icon or is missing a size icon. We recommend that you add all icon sizes into your ICO file (16×16, 24×24, 48×48, 64×64, 96×96, 72×72, 128×128, 256×256). Windows uses different sizes of your EXE icon in different situations and acquires them all from the same ICO file. If certain size is not found, then Windows shows icon by default or empty icon. You may pack different sizes of icons into .ico file with special icon authoring tools .
How can I restore data from an expired EXE?
After the date limitation period has expired, the EXE will not start. In this case: there are 2 things that you can do:
1. If you use the limitation period as a standalone option (you didn’t make the registration key for that EXE), and would like to restore the data from expired EXE, you can go to “DoneEx”->“XCell Compiler”->“EXE Options Viewer tool”, where you may load the expired EXE and change the expiration date.
2. If you used the limitation period option alongside the registration key tool, then you just need to make new registration key for this EXE and it will work again.
Where do I find the EXE file’s expiration date?
The data expiration of the EXE file may be found in the “Application About” box.
To find the “Application About” follow these steps:
1. Open the EXE file.
2. Go to the Excel main menu-> “Addins” ->“DoneEx”-> “your exe name”->About
What if I need to work with formulas after compilation?
There are no formulas stored in the cells in the compiled EXE file. All of the formulas are stored in the EXE file in binary format and are unavailable for any updates or changes.
The only way to restore formulas after compilation is explicitly write the formulas down in the cells using your VBA code.
Restoration of the formulas in the cells should look like:
Cell.Formula = “=<some formula here>”
Please note that doing this will make these formulas will be visible and unprotected.
If you open all formulas after compilation, then the content of the workbook may be copied to a new, unprotected workbook. This wordbook will work without any restrictions on any computer, even if you used hardware locking option for your EXE. In another words, the locking to target computer only works with the formula protected feature.
How do I overwrite the value in a cell that had a formula before compilation?
The “Allow to overwrite formula cells” option allows to you to write values into cells where the formulas were before compilation (in the compiled EXE file).
When you select “Allow to overwrite formula cells” option for compilation, then any cell with a formula in the compiled workbook may be overwritten by value.
After that cell has been overwritten, the cell will not calculate because there is NO formula in this cell. It works just like in the original workbook, where you can overwrite formula with some value.
Can I save the EXE using “Save As”?
The “Save As” only works if you enable it by checking the feature on in the compilation form (“Allow save”).
The compiled workbook may be saved as, but only as a file with the EXE extension only.
So your customers are able to save as many copies of the compiled exe as they want.
Each EXE saved this way keeps the same restrictions (hardware locking, limit usage period and so on) that the original EXE file has.
Is Microsoft Excel required to start the compiled EXE file?
Yes. While the compiled EXE has it’s own calculation engine, since this is the only way to securely protect formulas in cells, after calculation the compiled EXE needs to display the results of the calculation into Excel’s grid. This is the reason Excel is required.
Here are the system requirements for compiling and running the EXE files.
How do I grant trusted access to Visual Basic Project?
To turn on the VBA project requirement please follow these steps
1.Click on the ‘Office’ button for Excel 2007 or ‘File’ Excel menu item for Excel 2010 and higher
2. Choose Options
3. Choose Trust center
4. Choose Trust center settings
5.Choose Macro Settings
6. Check ON the Trust access to the VBA project object model
for 2003 Excel
To turn the VBA project requirement On, please follow these steps
1.Main Excel Menu
2.Menu item ‘Tools’
3.Menu item Options
4.Tab ‘Security’
5.Tab ‘Trusted Publishers’
6. Check ON ‘Trust access to Visual Basic Project’
How can I reduce anti-virus false positives of my compiled EXE file?
The compiled EXE file, much like any other EXE file on your computer, may be labeled by your antivirus with a false positive. We have made modifications which may reduce the false positives, but we cannot guarantee that there will not be any false positives for EXEs compiled with v2.4.2 and up. If your compiled EXE files are triggering anti-virus false positives, then updating your XCell Compiler to the most recent version can help:
http://doneex.com/downloads/xcell.zip
If your compiled EXE file is still labeled as a false positive by anti-virus software, then you have 2 options if you want to reduce false positives on your compiled exe:1. The most effective and correct way is to report about your false positive to your antivirus company. You need to send YOUR EXE to your antivirus program support desk with the subject “False positive” and ask them to fix the error in their product.
They usually fix the problem within 2 to 3 work days.
2. Most antiviruses have an “Exception” section in their settings where it is possible to set the following exceptions: 1- path to a compiled EXE file, 2 – path to the temporary work folder. The path to the temporarily work folder should be set as the parameter of the EXE start command line, like: Sample.exe -temp=”c:\Users\CurrentUser\Documents\TempFolder”.
If you do this to the file that is being labeled as a false positive it should resolve the issue.
3. Apply a digital signature to the EXE.
The DoneEx XCell Compiler has option “Save into external storage (.XSTG file)”. When you compile your workbook with this option selected – all changes in compile EXE will be saved into external file with the name of the workbook and “.XSTG” extension. The compiled EXE file will remain unchanged after saving. If you apply the digital signature to such EXE file the signature will be kept after saving the changes in the EXE.
Here are articles which may help to figure out how to apply a digital signature to your EXEs.
http://msdn.microsoft.com/en-us/library/ms537361.aspx
http://msdn.microsoft.com/en-us/library/8s9b9yaz%28VS.80%29.aspx
http://blog.didierstevens.com/2008/12/31/howto-add-a-digital-signature-to-executables/
http://www.thegeekstuff.com/2010/03/microsoft-digital-signatures/
Please note that EXEs compiled with our product are not our property and we cannot digital sign them instead of the author (you) because we do not know what compiled workbook algorithms they may contain and therefore we cannot assure its security and harmlessness.
How do I enable DoneEx menu?
Step 1:
XCell Compiler is placed into “Disable Application Add-Ins” section by Excel.
You need to select “Disabled Items” in the “Manage” combo-box and click the “Go” button.
Step 2:
Once you see the “Disabled Items” window, select the “xcell compiler…” add-in and click the “Enable” button.
Step 3:
After you click the “Enable” button, the XCell Compiler add-in will be removed from “Disabled Items” list.
Click the “Close” button.
Step 4:
Open Excel Options >> AddIns again.
You will see that XCell Compiler is moved into the “Inactive Application Add-Ins” list.
So you need to select the “COM Add-Ins” item in the “Manage” combo-box and click Go.
Step 5:
You will see this window with the “XCell Compiler …” COM Add-In un-checked.
Step 6:
You need to enable check-box for the “XCell Compiler…” item and click the “OK” button.
After that step, the “DoneEx” menu item should appear in your Excel menu.
If you will look at Excel Options >> AddIns you will see that XCell Compiler is moved into the
“Active Application Add-Ins” list.
If you processed all actions above and the DoneEx menu item didn’t appear in the Excel ribbon bar, then you need to verify Excel >> Options >> Customize Ribbon section.
Probably you have disabled the DoneEx menu item manually.
If the DoneEx menu item was disabled manually then you need to enable it and press OK button.
How to distribute compiled EXE files
You may deliver a compiled EXE file to your customers through the following methods:
1. Upload the exe file to your website or some other file transfer websites such as one of the following:
https://wetransfer.com/
https://www.dropbox.com/
and let your customers to download the file from there.
2. Make a archive file and attach it to email.
Do not use Send Email from Excel because in this case you send temporary xls only. A temporary xls doesn’t contain formulas so this xls file will not work.
In order to email a compiled EXE you should create new email letter and attach the archived EXE to this email.
Change the file’s extension from “.exe” to, for example, “. _xe” (especially necessary for gmail), and then archive it.
In this case, your client has to unzip and rename the ._xe back to .exe
You may find the directions on how to change file extension by following the links below:
https://www.partitionwizard.com/partitionmanager/change-file-extension-windows-10.html
http://www.programmerfish.com/how-to-change-file-extension-in-windows-7/
To prevent the letter delivery from being blocked by email provider, you need to archive the renamed “._xe” file with password.
You can do this with 7-Zip free software. Send this archived file and inform your customer what archive password is.