Microsoft Graph APIを使用してExcelスプレッドシートのセルを変更しています。 Int32.Max
より大きい整数値をAPIを介してスプレッドシートに書き込む場合、値の上位32ビットは切り捨てられているように見え、下位32ビットのみがスプレッドシートに書き込まれたように見えます。Int32.Maxより大きい値は、Microsoft Graph API for Excelで切り捨てられます。
以下は、私がテストした値です。
試験1:
Value sent: 1,234,000,000,000 (0x11F5021B400)
Value written to cell: 1344386048 (0x5021B400)
上位ビットは、下位32ビットを残し、トランケートされているように見えます。
試験2:0x100000000
の最上位ビットが切り捨てられる場合
Value sent: 4294967296 (0x100000000)
Value written to the cell: 0
:符号付きのInt32の数として解釈さ
Value sent: 2,147,483,648 (Int32.Max + 1) (0x80000000)
Value written to the cell: -2147483648
0x80000000
場合、それは-2147483648
試験3であります残りの32ビットは符号付きInt32 0
になります
試験4:
Value sent: 4294967295 (0xFFFFFFFF)
Value written to the cell: -1
符号付きのInt32値として解釈され、0xFFFFFFFF
、値のすべてが.NET Microsoftグラフクライアントライブラリを使用して送信された-1
なります。送信された値はすべてlong型です。要求の値の型をDoubleに設定しても問題は解決されませんでした。
ExcelスプレッドシートはInt32.Max
より大きい値をサポートしているため、Microsoft Graph APIもこれをサポートすると期待しています。どんな助けや反応も大歓迎です。
これはAPI自体ではなく、SDKのバグのようです。 GitHubでC#SDKチームの問題を記録することができます:https://github.com/microsoftgraph/msgraph-sdk-dotnet/issues –
@MarcLaFleur提案していただきありがとうございます。私はその問題を報告した。 – DinhNguyen92
更新:Fiddlerを使用してSDKで送信されたリクエストを調べた後、長整数がリクエストで切り捨てられていないことがわかりました。しかし、受信した応答では、整数はすべて切り捨てられました。これは、実際問題がExcelサービス自体であり、SDKではないことを示唆しているようです。 SDKチームは、この問題にサービスバグとも呼ばれ、まだ調査中です。 – DinhNguyen92