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.