iT邦幫忙

1

JS 讀取EXCEL檔的日期字串如何轉換

  • 分享至 

  • xImage

您好:
從EXCEL 中讀取 「2024/11/1 上午 07:58:03」

目前有那個function 可以直接轉成 DATTIME
或者 日期字串,如 20241101 ,075803
還是得 自己寫 Func ,來區隔分拆

因為要傳到C#後端,再存入資料庫。

或者,要以哪一種方式傳到C#後端,方便db存檔
謝謝

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2024-11-11 16:25:40 檢舉
傳到後端當然是用字串傳到後端啊,你難道要用timestamp傳?
C#不可能沒字串轉datetime的方法
Yaowen iT邦研究生 3 級 ‧ 2024-11-11 18:26:43 檢舉
直接丟字串就好 C# 再轉
froce iT邦大師 1 級 ‧ 2024-11-12 15:54:49 檢舉
後來幫你看了一下sheetjs,sheetjs能夠幫你轉。
https://docs.sheetjs.com/docs/csf/features/dates/
弄成json應該會變成ISO標準格式的datetime字串,C#應該是可以直接去parse。
noway iT邦研究生 1 級 ‧ 2024-11-15 10:37:49 檢舉
您好:
謝謝,sheetjs 原本要用,但讀取後中文亂碼,有用過
const workbook = XLSX.read(data, {
type: 'binary',
codepage:950
});

沒效,所以先改另存XLSX 來做

我看他XLS的欄位內容,是 通用格式,裡面的是文字,不是日期格式

不過還是謝謝您'!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
純真的人
iT邦大師 1 級 ‧ 2024-11-11 16:43:12

我都是習慣丟到資料庫在剖析資料

declare @Str nvarchar(50)

set @Str = N'2024/11/1 上午 07:58:03'

set @Str = '20241101'

set @Str = '0750803'

declare @SetTime datetime

if(len(@Str) = 7)
begin
	set @SetTime = Convert(varchar,19110000 + Convert(int,@Str))
end
else if(len(@Str) = 8)
begin
	set @SetTime = @Str
end
else
begin
	set @Str = Replace(Replace(@Str,N'上午 ',''),N'下午 ','')
	+ (case when @Str like N'%上午%' then ' AM' else ' PM' end)
	set @SetTime = @Str
end

select @SetTime

我要發表回答

立即登入回答