Установите тип данных, например номер, текст и дату в столбце Excel, используя Microsoft.Office.Interop.Excel в С#

Моя проблема в том, что я пытаюсь установить тип данных в столбец excel в С#, в этом случае число типов данных, текст и дату. Я использую DLL Microsoft.Office.Interop.Excel. Я не знаю, как установить эти форматы в ячейки всего столбца excel, используя С# имеет язык программирования.

Ответ 1

Чтобы задать диапазон для текста:

xlYourRange.NumberFormat = "@";

Вы также можете префикс значения, которое вы помещаете в ячейку с апострофом для ее форматирования в виде текста:

xlYourRange.Value = "'0123456";

Чтобы задать диапазон для номера

xlYourRange.NumberFormat = "0";

Очевидно, что если вы хотите установить формат для всего столбца, то ваш диапазон будет столбцом.

xlYourRange = xlWorksheet.get_Range("A1").EntireColumn;

РЕДАКТИРОВАТЬ:

Даты немного сложнее и будут также зависеть от ваших региональных настроек:

// Results in a Date field of "23/5/2011"

xlRange.NumberFormat = "DD/MM/YYYY";
xlRange.Value = "23/5/2011";

// Results in a Custom field of "23/5/2011"

xlRange.NumberFormat = "DD-MM-YYYY";
xlRange.Value = "23/5/2011";

// Results in a Custom field of "05/23/2011"

xlRange.NumberFormat = "MM/DD/YYYY";
xlRange.Value = "5/23/2011";

// Results in a Custom field of "05-23-2011"

xlRange.NumberFormat = "MM-DD-YYYY";
xlRange.Value = "5/23/2011";

// Results in a Date field of "23/05/2011"

xlRange.NumberFormat = "DD/MM/YYYY";
xlRange.Value = "5/23/2011";

// Results in a Custom field of "23-05-2011"

xlRange.NumberFormat = "DD-MM-YYYY";
xlRange.Value = "5/23/2011";

// Results in a Custom field of "23/5/2011"

xlRange.NumberFormat = "MM/DD/YYYY";
xlRange.Value = "23/5/2011";

// Results in a Custom field of "23/5/2011"

xlRange.NumberFormat = "MM-DD-YYYY";
xlRange.Value = "23/5/2011";

Ответ 2

Ответ на вопрос, который я спросил об этом некоторое время назад.

В частности, типы данных, которые этот парень использует в своем ответе:

private struct ExcelDataTypes
{
    public const string NUMBER = "NUMBER";
    public const string DATETIME = "DATETIME";
    public const string TEXT = "TEXT"; // also works with "STRING".
}

Выглядит знакомо?

Если вам интересно, вот ссылка:

Вставка DataTable в Excel с использованием Microsoft Access Database Engine через OleDb

Ответ 3

Да, с форматом даты все сложнее - еще сложнее, чем упоминал Сид Холланд. Причина в некоторых проблемах локализации. Например, если ваша система Windows имеет русскую локализацию, вы должны использовать русские буквы в форматах даты, например "ДД.MM.ГГГГ" или "ГГГГ-ММ-ДД", и, следовательно, вы должны иметь возможность извлекать и применять эти письма. См. Более-менее полное описание и решение здесь: fooobar.com/info/5943213/...