valor texto pasar para número numero formato escribo ejemplos cómo convertir como cambia almacenado c# excel interop

c# - texto - valor.numero excel



Interoperabilidad de C#Excel: cómo formatear celdas para almacenar valores como texto (3)

Estoy escribiendo números en una hoja de cálculo de Excel desde un DataTable y todos estos números tienen 5 dígitos de longitud con 0s anteriores si el número en sí tiene menos de 5 dígitos (por lo que 395 se almacenaría como 00395, por ejemplo).

Al ingresar estos números en Excel (usando C #), los almacena como números y elimina los 0s anteriores. ¿Hay alguna forma de formatear las celdas desde C # para que los valores se almacenen como texto en lugar de números?


// donde [1] es el número de columna que desea hacer texto

ExcelWorksheet.Columns[1].NumberFormat = "@";

// Si desea dar formato a una columna en particular en todas las hojas de un libro de trabajo, use el siguiente código. Retire el bucle para una sola hoja junto con ligeros cambios.

// ruta donde se guarda el archivo excel

string ResultsFilePath = @ "C: / Users / krakhil / Desktop / TGUW EXCEL / TEST";

Excel.Application ExcelApp = new Excel.Application(); Excel.Workbook ExcelWorkbook = ExcelApp.Workbooks.Open(ResultsFilePath); ExcelApp.Visible = true; //Looping through all available sheets foreach (Excel.Worksheet ExcelWorksheet in ExcelWorkbook.Sheets) { //Selecting the worksheet where we want to perform action ExcelWorksheet.Select(Type.Missing); ExcelWorksheet.Columns[1].NumberFormat = "@"; } //saving excel file using Interop ExcelWorkbook.Save(); //closing file and releasing resources ExcelWorkbook.Close(Type.Missing, Type.Missing, Type.Missing); Marshal.FinalReleaseComObject(ExcelWorkbook); ExcelApp.Quit(); Marshal.FinalReleaseComObject(ExcelApp);


Esta respuesta solo solucionó un problema importante con una solución de uno de los software de nuestra compañía, tuve que recuperar el valor como se muestra, pero una vez que lo configuré en la nueva hoja, se insertó como un número. Solución simple. Todavía no puedo votar, pero abajo sigue cómo terminó.

for (int h = 1; h <= 1; h++) { int col = lastColl(sheets); for (int r = 1; r <= src.Count; r++) { sheets.Cells[r, col + 1] = "''"+src.Cells[r, h].Text.ToString().Trim(); } }


Puede SomeRange.NumberFormat = "@"; o si prefieres el valor con un '' y lo escribes en la celda, Excel lo tratará como un número almacenado como texto y proporcionará una señal visual.