soluzione tentativo
prova ad aprirlo in modalità provvisoria (file danneggiato)
soluzione finale C#
con in software C# in console provo ad aprire il file e salvarlo in vari formati compreso quello senza macro
magari perdi le macro ma i dati li salvi
creo un progetto Console e compila questo codice indicando le giuste variabili
// variabili
string dirorigine = @"C:\Directory dove sta il file\";
string filerotto = "nome del file con estensione";
// console
Console.WriteLine("SistemaExcelDanneggiato (v 1.0)");
Console.WriteLine();
// creo oggetto Excel
Excel.Application xlApp = new Excel.Application();
xlApp.DisplayAlerts = false;
xlApp.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable;
// apri file corrotto
Console.WriteLine("apro file rotto: " + filerotto);
Console.WriteLine();
Excel.Workbook xlFileExcel;
object misValue = System.Reflection.Missing.Value;
xlFileExcel = xlApp.Workbooks.Open(dirorigine + filerotto, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "", false, false, 0, true, true, 1);
xlApp.Calculation = Excel.XlCalculation.xlCalculationManual;
// salva in vari formati
Console.WriteLine("salvo il file");
string filesenzamacro = dirorigine + Path.GetFileNameWithoutExtension(filerotto) + " (sistemato senza macro).xlsx";
Console.WriteLine("- senza macro: " + Path.GetFileName(filesenzamacro));
if (File.Exists(filesenzamacro))
{
File.Delete(filesenzamacro);}
File.Delete(fileconmacro);}
File.Delete(filebinario);}
p.Kill();}