2012-12-11 7 views
11

私の問題は、C#でExcelの列にデータ型を設定しようとしていることです。 、テキストと日付。 Microsoft.Office.Interop.ExcelというDLLを使用しています。 C#のプログラミング言語を使用して、これらの形式をExcelの列全体のセルに設定する方法がわかりません。テキストの範囲を設定するにはMicrosoft.Office.Interop.ExcelをC#で使用してExcelの列の数値、テキスト、日付などのデータ型を設定する#

答えて

20

xlYourRange.NumberFormat = "@"; 

また、あなたはそれがテキストとしてそれをフォーマットするためにアポストロフィをセルに入れた値接頭辞ことができます。設定するには

xlYourRange.Value = "'"; 

を範囲の数値

xlYourRange.NumberFormat = "0"; 

明らかに、列全体の形式を設定する場合、範囲はco列。

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

EDIT:

日付はもう少し複雑であり、また、あなたの地域の設定に依存します:

// 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"; 
+0

xlYourRange.NumberFormat = "DD/MM/YYYY"; 範囲をカスタムタイプ に設定しました。 xlYourRange.NumberFormat = "DD-MM-YYYY"; そしてそれを日付タイプ – Jack1987

+0

@ Jack1987に設定してください。日付のように見えるのは、最初の思想よりもはるかに複雑です。私はより多くの組み合わせを含めるように私の答えを修正しましたが、それはほとんどの試行錯誤の場合のように見えます。私が通常行っていることをコード化したアプリケーションでは、日付を文字列として設定し、 "23、September 2011"のようにフォーマットして、文字列のままにします。そうすれば、ユーザーの地域設定が何であっても、いつでもフォーマットを保証できます。 –

+0

日付形式のローカライゼーションの問題について考えている場合(ロシア語のローカライズの場合、日付形式は「ДД.MM.ГГГГ」)、私の答えはこちらをご覧ください:http://stackoverflow.com/a/35418176/ 2199512 – Jordan

0

私はこの上でいくつかの時間を尋ねた質問への答えがありますバック。

最も顕著なのは、この男は彼の答えに使用するデータの種類は次のとおりです。おなじみの

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

ルック?

興味のある方は、こちらのリンクは次のとおりです。

Insert DataTable into Excel Using Microsoft Access Database Engine via OleDb

0

はい、日付フォーマットですべてがより複雑である - さらに複雑シドオランダは言及していより。理由はいくつかのローカリゼーションの問題です。たとえば、Windowsシステムにロシア語のローカリゼーションがある場合、 "ДД.MM.ГГГГ"や "ГГГГ-MM-ДД"のような日付形式のロシア語の文字を使用する必要があります。したがって、抽出して適用する必要がありますこれらの手紙。ここでは多かれ少なかれ完全な説明と解決法を参照してください:https://stackoverflow.com/a/35418176/2199512

関連する問題