Как изменить текстовый формат ячейки Excel с помощью C#?
в настоящее время я пишу приложение (C#) для создания отчета в файл Excel, на основе других отчетов.
проблема в том, что, как только получить номер с определенного листа и скопировать на другой, ячейка назначения не формируется правильно, и номер не отображается правильно.
E.g :
Number from source : 14.34
Number on destination : 14.345661
Как отформатировать целевую ячейку, чтобы заставить число, формирующееся, совпадать с исходной ячейкой.
спасибо !
2 ответов
формат данной ячейки / диапазона в excel может быть установлен с помощью кода.
public void SetCustomFormat(string format, int r, int c)
{
((Excel.Range)xlWks.Cells[r, c]).NumberFormat = format;
}
в вашем конкретном случае, я считаю, что вам нужно будет использовать формат"#.00" или "#.##"
вот фрагмент из некоторого кода, который я использую, чтобы показать вам общий шаблон для форматирования ячеек. Очевидно, что некоторые переменные объявлены, но он должен показать вам, что вам нужно.
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Font.Bold = true;
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Interior.Color = Color.Silver.ToArgb();
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
sheet.get_Range("A" + CompetencyStartRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
эта первая строка, предполагая, что CurrentRowIndex = 1 и ColPrefix = "B", замена переменных результирующими значениями приведет к
sheet.get_Range("A1", "B1").Font.Bold = true;
во всяком случае, вы хотите установить numberformat. (Предстоящий..)
sheet.Cells[Row, Column].NumberFormat = "0.00"