Mój problem polega na tym, że próbuję ustawić typ danych do kolumny excel w C#, w tym przypadku numer typów danych , tekst i data. Używam DLL Microsoft.Office.Interop.Excel. Nie wiem, jak ustawić te formaty do komórek w całej kolumnie programu Excel za pomocą C# ma język programowania.Ustaw typ danych, takich jak numer, tekst i data w excel kolumnie przy użyciu Microsoft.Office.Interop.Excel w C#
Odpowiedz
Aby ustawić zakres tekstu:
xlYourRange.NumberFormat = "@";
Można również poprzedzić wartość można umieścić w celi z apostrofem na to, aby go sformatować jako tekst:
xlYourRange.Value = "'";
aby ustawić zakres do numeru
xlYourRange.NumberFormat = "0";
Oczywiście, jeśli chcesz ustawić format całej kolumny, wtedy twój zakres będzie równy lumn.
xlYourRange = xlWorksheet.get_Range("A1").EntireColumn;
EDIT:
Terminy są nieco bardziej skomplikowane i zależy również od ustawień regionalnych:
// 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";
Jest to odpowiedź na pytanie poprosiłem o tym od jakiegoś czasu plecy.
Przede typy danych to facet wykorzystuje w swojej odpowiedzi to:
private struct ExcelDataTypes
{
public const string NUMBER = "NUMBER";
public const string DATETIME = "DATETIME";
public const string TEXT = "TEXT"; // also works with "STRING".
}
wygląda znajomo?
Jeśli jesteś zainteresowany, tutaj jest link:
Insert DataTable into Excel Using Microsoft Access Database Engine via OleDb
Tak, ze format daty wszystko jest bardziej skomplikowane - nawet bardziej skomplikowany niż Sid Holland wspomniał. Powodem są niektóre problemy z lokalizacją. Na przykład, jeśli twój system Windows ma rosyjską lokalizację, powinieneś używać rosyjskich liter w formatach daty, takich jak "ДД.MM.Г" lub "ГГГ-MM-ДД", a zatem powinieneś być w stanie wyodrębnić i zastosować te litery. Zobacz mniej lub bardziej kompletny opis i rozwiązanie tutaj: https://stackoverflow.com/a/35418176/2199512
W przypadku ustawionego zakresu do tej pory xlYourRange.NumberFormat = "DD/MM/YYYY"; to ustawić zakres do niestandardowego typu staram xlYourRange.NumberFormat = "DD-MM-YYYY"; , a następnie ustaw aktualny typ: – Jack1987
@ Jack1987 Wygląda na to, że daty są jeszcze bardziej skomplikowane niż na początku. Zmieniono moją odpowiedź, by zawierała więcej kombinacji, ale wygląda na to, że to głównie próba i błąd. W aplikacjach zakodowałem to, co zwykle robię, ustawiając datę jako ciąg znaków i formatuję ją jako "23 września 2011 r.", Aby pozostała jako ciąg znaków. W ten sposób mogę zawsze zagwarantować format bez względu na ustawienia regionalne użytkownika. –
Jeśli myślisz o problemach z lokalizacją w formatach daty (na przykład w rosyjskiej lokalizacji twój format daty może być "ДД.MM.ГГ"), zobacz moją odpowiedź tutaj: http://stackoverflow.com/a/35418176/ 2199512 – Jordan