2017-02-15 9 views
5

テキストとして格納された数値として列Cを持つExcelブックがあります。数値に変換するC#の構文は何ですか?私はこのVBAが仕事をすることを知っています数値をテキストとして数値に変換

Range("C:C").Select 
With Selection 
    Selection.NumberFormat = "0.00%" 
    .Value = .Value 
End With 

私はこれをC#で試みましたが、数字はテキストとして保存されました。

ExcelWorksheet ws3 = pck.Workbook.Worksheets.Add("New Sheet"); 
ws3.Cells["A1"].LoadFromDataTable(tableforme, true); 
ws3.View.FreezePanes(2, 4); 
ws3.Cells["C:C"].Style.Numberformat.Format = "#,##0.00"; 
ws3.Cells["C:C"].Style.Numberformat.Format = "0%"; 

数値がテキストとして格納されている列を変換するには、C#で何を行う必要がありますか。

答えて

2

.NET型へのセルの値を変換するには、私の作品:

var values = new List<object[]>() 
{ 
    new string[] { "0.001", "1.001", "2.002" }, 
    new string[] { "3.003", "4.004", "5.005" }, 
    new string[] { "6.006", "7.007", "8.008" } 
}; 

using (var package = new ExcelPackage()) 
{ 
    var sheet = package.Workbook.Worksheets.Add("Sheet1"); 
    sheet.Cells["A1"].LoadFromArrays(values); 
    foreach (var cell in sheet.Cells["C:C"]) 
    { 
     cell.Value = Convert.ToDecimal(cell.Value); 
    } 
    sheet.Cells["C:C"].Style.Numberformat.Format = "#,##0.00"; 
    File.WriteAllBytes(OUTPUT, package.GetAsByteArray()); 
} 

enter image description here

0

あなたは 「w3.Columns.NumberFormat」 代わり の使用してみました「[]細胞を。Style.NumberFormat.Format」私はエクセルVSTOアプリでカップルの場所で使用しているものを

そのをそれは素晴らしい作品です。

1

私はすべてそのパッケージのものをやっているkuujinbo理解していません。 VBで行ったのと同じことを行う方がはるかに簡単です。

using Excel = Microsoft.Office.Interop.Excel; 

... 

Excel.Range rangeOfValues = ws3.Range("C:C"); 
rangeOfValues.Cells.NumberFormat = "#0"; 
rangeOfValues.Value = rangeOfValues.Value; 
+0

これは良い答えです。ありがとうございました –

関連する問題