联系人导出为CSV文件自动设置的手机号码成为集 [英] Exporting Contacts into csv file automatically format mobile numbers into scientific
问题描述
到我的项目时,即时通讯联系人导出为CSV文件自动设置的手机号码开始用91到科学的。
例如
手机没有进导出数据
919433454320
手机号码为CSV文件时,科学的格式
9.194E + 11
格式的单元格后,与0小数号码
9194.3亿
有关使用Microsoft.Office.Interop.Excel.Application
工作簿
导出联系人到我的项目我在这里是我的代码
Microsoft.Office.Interop.Excel.Application应用=新Microsoft.Office.Interop.Excel.Application();
app.Visible = FALSE;
工作簿WB = app.Workbooks.Add();
表WS =(表)wb.Worksheets.get_Item(1);
对象[,] RAWDATA =新对象[DataTable.Rows.Count + 1,DataTable.Columns.Count]
为(INT COL = 0;&山坳下,DataTable.Columns.Count;西++)
{
RAWDATA [0,列] = DataTable.Columns [COL] .ColumnName ;
}
为(INT COL = 0;&山坳下,DataTable.Columns.Count;西++)
{
为(INT行= 0;&行LT; DataTable.Rows.Count;排++)
{
RAWDATA [排+ 1,列] = DataTable.Rows [行] .ItemArray [COL];
}
}
的String [] callchar =新的String [] {系列我的Excel工作表(例如,从A到Bz的};
串excelRange = callchar [0] +1+ callchar [DataTable.Columns.Count - 1] +(DataTable.Rows.Count + 1)的ToString();
范围R = ws.Cells.EntireColumn.NumberFormat;
ws.get_Range(excelRange,Type.Missing).Value2 = RAWDATA;
wb.SaveAs(文件名:文件路径,FILEFORMAT:XlFileFormat.xlCSVWindows,ReadOnlyRecommended:假);
wb.Close();
app.Quit();
您可以使用后期绑定导出数据:
//尝试打开的Excel
Thread.CurrentThread.CurrentCulture =新的CultureInfo( EN-US);
型typeExcelApplication = Type.GetTypeFromProgID(Excel.Application);
如果(typeExcelApplication == NULL)
抛出新的异常(未安装Excel文件(Excel中。应用未找到));
对象objExcelApplication = Activator.CreateInstance(typeExcelApplication);
对象objWorkBooks = objExcelApplication.GetType()InvokeMember(工作簿,BindingFlags.GetProperty,空,objExcelApplication,NULL);
对象objWorkBook = objWorkBooks.GetType()InvokeMember(添加,BindingFlags.InvokeMethod,空,objWorkBooks,NULL);
对象objWorkSheet = objWorkBook.GetType()InvokeMember(ActiveSheet,BindingFlags.GetProperty,空,objWorkBook,NULL);
//填写数据(把obj对象到单元格[1,1])$ B $ B objWorkSheet.GetType()。InvokeMember(细胞,BindingFlags.SetProperty,空,objWorkSheet,新对象[] {1,1,物镜});
//显示练成
typeExcelApplication.InvokeMember(可见,BindingFlags.SetProperty,空,objExcelApplication,新的对象[] {真});
对Marshal.ReleaseComObject(objExcelApplication);
Excel中应正确处理类型,因此,如果您提供 OBJ
为 字符串
- 它不会尝试从它使数(科学)
Into my project when i m exporting Contacts into csv file automatically format mobile numbers starts with 91 into scientific.
e.g mobile no into exporting data
919433454320
mobile no into csv file when scientific format
9.194E+11
after format cell as number with 0 decimal places
919430000000
For exporting contacts into my project i m using Microsoft.Office.Interop.Excel.Application
Workbook here is my code
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 (e.g 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();
You can use late binding to export data:
// 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 should properly process types, so if you supply obj
as a string
- it will not try to make a number (scientific?) from it.
这篇关于联系人导出为CSV文件自动设置的手机号码成为集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!