3

既存の Excel ドキュメント (xlsx) の列の書式を変更できません。列の内容は実際には数値ですが、テキストとして表示されるため、緑色の三角形が表示され、セルがテキストとして表示されていることがわかります。

したがって、このドキュメントを C# アプリで開き、次のことを行います。

sheet_.Range[sheet_.Cells[1, 2], sheet_.Cells[rowNum, 2]].EntireColumn.NumberFormat = "0";                

ただし、コンテンツを数値として表示するように列を変更することはありません (左側に配置されたままです)。

4

5 に答える 5

4

これは古い投稿であることは知っていますが、同じ問題に取り組んできました。「Number as Text」エラーを示す緑色の三角形が既に含まれている .xlsx ファイルを受け取りました。Excelでクリックして実行できるExcelエラーチェックコマンド「数値に変換」をプログラムで実行する方法が見つかりませんでした。これらのエラーのあるセルのNumberFormatを変更してもうまくいきませんでしたが、できましたTextToColumns メソッドを使用してセル形式を「更新」します。

int lastCol = sheet.UsedRange.Columns.Count;
        if(lastCol > 1)
        {
            for (int i = 1; i <= lastCol; i++)
            {
                sheet.Columns[i].TextToColumns(Type.Missing, XlTextParsingType.xlDelimited, XlTextQualifier.xlTextQualifierNone);
            }

そこから NumberFormat を変更できます。たまたま科学表記法に入れられる長整数を持っていたので、これを使用してそれらを再び通常の整数にしました。

sheet.Cells.NumberFormat = "#";

(追伸、カスタマイズされた NumberFormats に使用するシンボルに関する決定的なガイドを誰かが見つけた場合、私はまだそれを見つけようとしています!)

于 2015-10-15T19:23:35.703 に答える
3

get_Range メソッドでセル値にアクセスしてみてください! たとえば、必要な数値形式について、Excelセルに次の数値があるとしましょう:1546,65

sheet_.get_Range("P10", "Q10").NumberFormat = "0"; // returns 1546
sheet_.get_Range("P10", "Q10").NumberFormat = "0,00"; // returns 1546,65
sheet_.get_Range("P10", "Q10").NumberFormat = "#.##0,00"; // returns 1.546,65

そして、これらの数値形式で遊ぶことができます!

それがあなたを助けることを願っています

于 2012-10-31T08:59:52.893 に答える
0

この問題に対する理想的な解決策が見つからず、次のように終了しました。

    sheet_.get_Range("A1", "A100").NumberFormat = "0";

    for(int i = 1; i <= 100; i++)
    {
       sheet_.Cells[1, i].Value = sheet_.Cells[1, i].Value;
    }
于 2012-11-08T08:32:36.583 に答える
0

StyleNumberFormatLocalを使用すると、問題が解決しました。

sheet_.get_Range("A1", "A100").Style.NumberFormatLocal = "0";
于 2016-05-18T12:05:13.587 に答える
0

これが古い投稿であることは知っていますが、これにつまずいて、これに対する解決策があります。NumberFormat を割り当てないようにしましたか? デフォルトでは、Excelはセルの内容に基づいて決定するため、テキストとして保存されている数値がある場合、緑色の三角形は表示されません. データ型に基づいて値を読み取る場合は、この投稿を参照してください

http://www.codeproject.com/Articles/335589/Export-Multiple-Datasets-to-Multiple-Excel-sheets

于 2014-04-23T15:19:22.487 に答える