2013-01-10 113 views
1

我有一個時間跨度以totalhours-totalminutes-totalseconds的格式存儲在sql中的varchar中。 現在我必須將該信息導出爲ex​​cel。在excel中顯示時間跨度

我遇到的問題是,我無法爲我的生活找到一種格式,在Excel中將正確顯示此信息。有沒有一種方法可以正確顯示這些信息?我在C#中使用XLS輸出此信息。

樣品輸入: 48:00:11

輸出示例: 1900年2月17日上午12時11分00秒或48.0076388888889

+0

文本格式?取決於你想用它做什麼。 – Paddy

+0

這種格式是不是工作'dd/mm/yyyy h:mm:ss',它會是'02/01/1900 00:00:11 AM'(你在分鐘部分有11個不是這種情況) – V4Vendetta

回答

2

對於格式,你需要設定自定義時間格式:

[h]:mm:ss

...將顯示持續時間超過24小時的小時數。如果您在Excel單元格中鍵入「48:00:11」,它將爲您創建該自定義格式(至少,它在我的機器上的Excel 2007中剛剛完成)。刪除格式顯示的值是預期的雙倍(所有非字符串都是):2.000127,這是持續時間的天數(以時間爲分數)。

將該字符串值放入C#的工作表中可能會有不同的結果:我懷疑是從您獲得的48.007638 ...值中獲得的。由於您擁有C#,因此我傾向於將時間跨度計算爲將值推送至Excel之前的幾天,然後按上述格式設置。

+0

你有一個好點@Mike。但爲什麼如果我使用如下輸入:** 1:08:44 **它將以格式[h]:mm:ss正確顯示,但輸入** 48:00:11 **不會? – fonsIT

+0

最佳猜測:如果Excel認爲您需要48天48:00:11,那麼當您的C#代碼寫入工作表時發生了一些事情。很難知道可用的信息。 –

+0

好了,我會嘗試簡單的代碼並用它編輯我的帖子。 – fonsIT