[ad_1]
こんにちはチーム、
を使用してExcelファイルをデータテーブルに変換しています
ExcelReaderFactory
. 問題は、パーセンテージ列が自動的に数値に変換されることです。 Excel にある正確な形式が必要です。
以下は Excel 形式のように仮定します。
CYear LYear 8.32% 19.43% 7.72% 6.54%
データテーブルに変換した後、値
以下のように
CYear LYear 0.0832 0.1943 0.0772 0.0654
ただし、以下のような正確な値が必要です(データベースに保存する前に、C# で % を置き換えます)
CYear LYear 8.32 19.43 7.72 6.54
注: Excel ファイルの列は動的になります。 列名がわからないため、コードで手動でパーセンテージに変換できませんでした。
前もって感謝します、
スキン
私が試したこと:
var stream = File.Open(file.FullName, FileMode.Open, FileAccess.Read); var reader = ExcelReaderFactory.CreateOpenXmlReader(stream); var input = reader.AsDataSet(new ExcelDataSetConfiguration() { UseColumnDataType = false, FilterSheet = (tableReader, sheetIndex) => tableReader.VisibleState == "visible", ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration() { UseHeaderRow = true, FilterRow = (rowReader) => { int progress = (int)Math.Ceiling((decimal)rowReader.Depth / (decimal)rowReader.RowCount * (decimal)100); return true; } } });
解決策 1
Excel の値は取得した値です。シートの列 (またはセル) に「パーセンテージ」という形式が適用されているだけです。 これをテストするには、シートを編集し、セルを強調表示して右クリックします。 「セルの書式設定」を選択すると、選択された表示モードが表示されます。
データを DataTable にインポートする場合、データには表示形式が含まれないため、DB に送信する前にすべての値を手動で 100 倍する必要があります。
「%」文字を含むように文字列に変換しないでください。変換すると、DB データを他のデータの数学演算に直接使用できなくなります。
自分? Excel の値と同じままにして、DB 用に値を変更するのではなく、再度ユーザーに提示するときにパーセンテージ情報を適用します。
[ad_2]
コメント