6

私は現在、他のレポートに基づいてExcelファイルにレポートを生成するアプリケーション(C#)を作成しています。

問題は、あるシートから番号を取得して別のシートにコピーすると、宛先セルが正しくフォーマットされず、番号が正しく表示されないことです。

E.g : 
Number from source : 14.34 
Number on destination : 14.345661

宛先セルをフォーマットして、数値フォーマットをソースセルと同じにする方法を教えてください。

ありがとう !

4

2 に答える 2

4

Excelの特定のセル/範囲の形式は、コードを介して設定できます。

public void SetCustomFormat(string format, int r, int c)
{
    ((Excel.Range)xlWks.Cells[r, c]).NumberFormat = format;
}

あなたの特定のケースでは、「#。00」または「#。##」の形式を使用する必要があると思います

于 2012-05-23T13:08:21.513 に答える
3

これは、セルをフォーマットするための一般的なパターンを示すために、私が使用しているいくつかのコードからの抜粋です。明らかに、宣言されたいくつかの変数がありますが、それはあなたが必要とするものをあなたに示すはずです。

sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Font.Bold = true;
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).Interior.Color = Color.Silver.ToArgb();
sheet.get_Range("A" + CurrentRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
sheet.get_Range("A" + CompetencyStartRowIndex.ToString(), ColPrefix + CurrentRowIndex.ToString()).BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);

その最初の行は、CurrentRowIndex=1およびColPrefix="B"と仮定して、変数を結果の値に置き換えると、次のように変換されます。

sheet.get_Range("A1", "B1").Font.Bold = true;

とにかく、あなたはnumberformatを設定したいと思います。(到来..)

sheet.Cells[Row, Column].NumberFormat = "0.00"
于 2012-05-23T13:05:21.603 に答える