Je veux numériser une feuille Excel, et remplacer toutes les occurrences de numéros de sécurité sociale avec des zéros ... Je voudrais faire cela en utilisant Excel.Interop si possible, mais je « m ouvert à tout à ce moment ... voici une partie de mon code ... Je me cogner la tête sur le bureau pour les quelques mois ...remplacer les valeurs de cellules dans Excel en utilisant excel.interop
// Get range and convert it to a string variable Excel.Range _range =(Excel.Range)_excelApp.get_Range("A1:K1",Type.Missing); // convert the value of our cells in our range // to the string variable string myString = _range.Cells.Value2.ToString(); // match any SSN e.g. 1236780909, 123-33-2445 if (Regex.IsMatch(myString, @"\b\d{3}\b\d{2}\b\d{4}")); { _range.Cells.Value2 = replaceSSN; } // save our workbook with a new name and create a backup _excelWorkbook.SaveAs("Results.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, true, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); // close workbook _excelWorkbook.Close(false, Type.Missing, Type.Missing); // send quit signal to app _excelApp.Quit(); // report success MessageBox.Show("File masked successfully.", "Mask Data", MessageBoxButtons.OK); // release memory //System.Runtime.InteropServices.Marshal.ReleaseComObject(_excelApp); // change label back to being blank lblActivity.Text = ""; }
Fonctionne parfaitement. Merci beaucoup Ori ... tu m'as sauvé la tête de plus de maux de tête ... lol ... Je comprends aussi complètement ce que tu as fait ... une expérience d'apprentissage aussi ... merci encore! – Woody
pas de problème à tout moment :) –
Hey Ori, je viens de rencontrer un bug. Je reçois un Impossible de lancer l'objet de type 'System.Double' pour taper 'System.Object [,]'. chaque fois qu'une seule cellule est dans la gamme. S'il y a plus d'une cellule qui est peuplée dans la gamme, alors cela fonctionne bien ... des idées? – Woody