Экспорт контактов в файл csv автоматически форматирует мобильные номера в научные

В мой проект при импорте контактов в файл csv автоматически форматирование мобильных номеров начинается с 91 в научный.

например, мобильный нет в экспорт данных

919433454320

Мобильный нет в CSV-файл, когда научный формат

9.194E + 11

после ячейки формата как число с 0 знаками после запятой

919430000000

Для экспорта контактов в мой проект im с использованием Microsoft.Office.Interop.Excel.Application

Книга здесь – мой код

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); app.Visible = false; Workbook wb = app.Workbooks.Add(); Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1); object[,] rawData = new object[DataTable.Rows.Count + 1, DataTable.Columns.Count]; for (int col = 0; col < DataTable.Columns.Count; col++) { rawData[0, col] = DataTable.Columns[col].ColumnName; } for (int col = 0; col < DataTable.Columns.Count; col++) { for (int row = 0; row < DataTable.Rows.Count; row++) { rawData[row + 1, col] = DataTable.Rows[row].ItemArray[col]; } } string[] callchar = new string[] {"range of my excel sheet (eg from a to Bz"}; string excelRange = callchar[0] + "1:" + callchar[DataTable.Columns.Count - 1] + (DataTable.Rows.Count + 1).ToString(); Range r = ws.Cells.EntireColumn.NumberFormat; ws.get_Range(excelRange, Type.Missing).Value2 = rawData; wb.SaveAs(Filename: FilePath, FileFormat: XlFileFormat.xlCSVWindows, ReadOnlyRecommended: false); wb.Close(); app.Quit(); 

Вы можете использовать позднюю привязку для экспорта данных:

  // try to open excel Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Type typeExcelApplication = Type.GetTypeFromProgID("Excel.Application"); if (typeExcelApplication == null) throw new Exception("Excel is not installed (Excel.Application is not found)"); object objExcelApplication = Activator.CreateInstance(typeExcelApplication); object objWorkBooks = objExcelApplication.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, objExcelApplication, null); object objWorkBook = objWorkBooks.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, objWorkBooks, null); object objWorkSheet = objWorkBook.GetType().InvokeMember("ActiveSheet", BindingFlags.GetProperty, null, objWorkBook, null); // fill data (put object obj into cell [1,1]) objWorkSheet.GetType().InvokeMember("Cells", BindingFlags.SetProperty, null, objWorkSheet, new object[] { 1, 1, obj}); // display excel typeExcelApplication.InvokeMember("Visible", BindingFlags.SetProperty, null, objExcelApplication, new object[] { true }); Marshal.ReleaseComObject(objExcelApplication); 

Excel должен правильно обрабатывать типы, поэтому, если вы предоставляете obj как string он не будет пытаться сделать из него число (научное?).