Ответ 1
Вы можете SomeRange.NumberFormat = "@";
или префиксное значение с помощью '
и записать его в ячейку. excel будет обрабатывать его как числовой-сохраненный как текст и предоставлять визуальную метку.
Я пишу цифры в электронную таблицу Excel из DataTable
, и все эти числа составляют 5 цифр с предшествующими 0, если само число меньше 5 цифр (так что 395 будет храниться как 00395, например).
При вводе этих чисел в Excel (используя С#), они сохраняют их как числа и исключают предыдущие 0. Есть ли способ форматировать ячейки из С# для того, чтобы значения сохранялись как текст, а не числа?
Вы можете SomeRange.NumberFormat = "@";
или префиксное значение с помощью '
и записать его в ячейку. excel будет обрабатывать его как числовой-сохраненный как текст и предоставлять визуальную метку.
Этот ответ только что решил серьезную проблему с решением одного из наших программных продуктов компании, мне пришлось извлечь значение, как показано, но как только я установил его на новый лист, он вставлялся в виде числа. Простое решение. Я пока не могу проголосовать, но вниз следует, как это закончилось.
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();
}
}
//где [1] - номер столбца, который вы хотите сделать
ExcelWorksheet.Columns[1].NumberFormat = "@";
//Если вы хотите отформатировать конкретный столбец на всех листах в книге - используйте ниже код. Удалите петлю для отдельного листа вместе с небольшими изменениями.
//путь был сохранен в файле excel
строка 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);