簡短版:如何通過 Json 和 Power Query 將具有 .Net DateTime 或 TimeSpan 型別的資料匯入 Excel 表?我不讓它作業。
更多詳細資訊:我有稀疏資料(int 值及時記錄稀疏),我想在 Excel 中匯入為表格和圖表。在我的 C# 代碼中,它表示為 Dictionary< DateTime , int>。我將資料匯出到 Json 檔案(使用 System.Text.Json)并通過 Power Query 將其匯入 Excel。在 Power Query 中,DateTime 最終作為文本列(在預覽中看起來像 0001-07-24T01:05:45)。我將型別更改為日期/時間,一切似乎都很好(在預覽中看起來像 0001-07-24 01:05:45)。但是當我保存并將其加載到表中時,該列是空白的。這是怎么回事?
我用TimeSpan嘗試了同樣的事情。Json 無法序列化 TimeSpan 所以我只是在序列化之前使用了 .ToString() 。在 Power Query 中,我將值轉換為 Duration ,當我將其加載到表中時,它確實有效......雖然我無法讓排序作業。我只能按 A->Z 排序,而不是按時間排序,盡管 Excel 顯然明白它們是時間(圖表如預期的那樣稀疏)。
對不起,如果這看起來像一個 Excel / Power Query 問題,但它與兩種 .Net 型別有關,我認為以前一定有很多 .Net 程式員做過。
uj5u.com熱心網友回復:
如果您在 powerquery 中有0001-07-24T01:05:45,格式為日期/時間,它將顯示給您

并作為空白加載到 excel 中,因為 Excel 中沒有0001年。您需要將年份設定為其他內容
這添加了一個新列,其中 0001 變為 2022
= Table.AddColumn(#"PriorStepName", "Custom", each DateTime.FromText(Text.Replace(Text.From([ColumnNameHere]),"0001","2020")),type datetime)
或者這個,用 2020 代替 0001,就位
= Table.TransformColumns(#"PriorStepName",{{"ColumnNameHere", each DateTime.FromText(Text.Replace(Text.From(_),"0001","2020")),type datetime}})
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/488215.html
上一篇:如何使用MicrosoftOffice創建重復提示用戶輸入的表單
下一篇:MSexcel按條件計算總和
