Как изменить текстовый формат ячейки 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"