microsoft.interop.excel Форматирование ячеек

Я создаю отчет, используя библиотеку microsoft.interop.excel на С#.

У меня есть что-то вроде этого:

 Range rangeTarget;
 .
 .
 .
 rangeTarget = worksheet.get_Range("C" + row, "N" + row);

Я хочу, чтобы диапазон отображал свои значения как целые числа, то есть без десятичных знаков. Я пробовал rangeTarge.AutoFormat, но понятия не имею, как его использовать.

Любые идеи ?

Спасибо.


person Jonny    schedule 13.09.2011    source источник
comment
Вам удалось найти NumberFormat, представляющий нужное форматирование? Кроме того, есть ли что-то еще, что вам нужно для решения этого вопроса?   -  person TMB    schedule 15.09.2011
comment
Множество примеров форматирования типов данных здесь: support.office.com/en-us/article/   -  person Gábor Imre    schedule 12.12.2014


Ответы (2)


см. MSDN

Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
this.Controls.AddNamedRange(this.Range["A1", "A5"], "namedRange1");

namedRange1.NoteText("This is a Formatting test", missing, missing);
namedRange1.Value2 = "Martha";
namedRange1.Font.Name = "Verdana";
namedRange1.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
namedRange1.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
namedRange1.BorderAround(missing, Excel.XlBorderWeight.xlThick,
    Excel.XlColorIndex.xlColorIndexAutomatic, missing);
namedRange1.AutoFormat(Excel.XlRangeAutoFormat.xlRangeAutoFormat3DEffects1,
    true, false, true, false, true, true);

if (MessageBox.Show("Clear the formatting and notes?", "Test",
    MessageBoxButtons.YesNo) == DialogResult.Yes)
{
    namedRange1.ClearFormats();
    namedRange1.ClearNotes();
}
person TMB    schedule 13.09.2011
comment
Я не думаю, что это ответит на ваш вопрос, но я все равно оставлю его здесь. - person TMB; 13.09.2011

Я не знаю, какие есть другие форматы, но вы можете посмотреть на MSDN.

Excel.Range ThisRange = ThisSheet.get_Range("A:A",system.type.missing);
ThisRange.NumberFormat = "0.00%";
ThisRange.NumberFormat = "General";    
ThisRange.NumberFormat = "hh:mm:ss";
ThisRange.NumberFormat = "DD/MM/YYYY";

Marshal.FinalReleaseComObject(ThisRange);
person TMB    schedule 13.09.2011
comment
@ Xtian11 - это очень полезный комментарий. - person Den; 12.06.2015