2

Linq-To-Excel パッケージを使用して CSV ファイルを読み込んでいます。結果を保持するためのクラスを作成しました。

public class ReconciliationLineLinqToExcel
{
    public string OperatingUnit { get; set; }
    public Int64 CustomerTenantId { get; set; }
    public string CustomerName { get; set; }
    public string SyndicationPartnerSubscriptionNumber { get; set; }
    public string DurableOfferId { get; set; }
    public DateTime SubscriptionStartDate { get; set; }
    public DateTime SubscriptionEndDate { get; set; }
    public DateTime ChargeStartDate { get; set; }
    public DateTime ChargeEndDate { get; set; }
    public string ChargeType { get; set; }
    public decimal UnitPrice { get; set; }
    public int Quantity { get; set; }
    public decimal Amount { get; set; }
    public decimal TotalOtherDiscount { get; set; }
    public decimal Subtotal { get; set; }
    public decimal Tax { get; set; }
    public decimal TotalForCustomer { get; set; }
    public string Currency { get; set; }
}

各プロパティは、CSV ファイルの列です。

CSV のヘッダー行:

OperatingUnit,CustomerTenantId,CustomerName,MpnId,OrderId,SubscriptionId,SyndicationPartnerSubscriptionNumber,OfferId,DurableOfferId,OfferName,SubscriptionStartDate,SubscriptionEndDate,ChargeStartDate,ChargeEndDate,ChargeType,UnitPrice,Quantity,Amount,TotalOtherDiscount,Subtotal,Tax,TotalForCustomer,Currency

これは入力としての CSV ファイルのサンプル行です: (私はいくつかのデータを検閲しました)

e588f1c2-69f1-4b78-3c4d-9b844d03c18e,"1338338173","COMPANY NAME",1382187,"567172081122654669","p3rITwAAAABBAAIA","68752F49-D9CA-4870-8955-3EEB26E37068","B0D93AE5-400E-4CBC-A465-D12B9FFA75AB","031C9E47-4845-4248-838E-778FB1D2CC05","OFFICE 365 BUSINESS PREMIUM",11/04/2015 00:00:00,11/23/2016 00:00:00,11/23/2015 00:00:00,12/22/2015 00:00:00,"CYCLE FEE",8.44,8,67.52,0,67.52,0,67.52,"EUR"

このコードを使用して、CSV ファイルを開き、次の行を読み取ります。

var csv = new ExcelQueryFactory(filename);
var data = csv.Worksheet<ReconciliationLineLinqToExcel>(0);

データ変数を反復してこの行を検索すると、すべての小数値に小数点記号がありません。たとえば、プロパティ「Amount」の値は 67.52 ではなく 6752 です。

これは、すべての行のすべての 10 進数値に当てはまります。小数に解析するときに文化の問題に関連している可能性があると思ったので、プロパティのタイプを文字列に変更しようとしました。しかし、その後、「6752」という値が得られたので、運が悪い.

ここで私が見逃しているものについて手がかりを持っている人はいますか、それともバグですか?

4

2 に答える 2