我從 Excel 讀取特定列時遇到問題,該列的型別是自定義的,如果我更改型別,它會更改值。所以,我不確定如何在代碼中轉換為可以使用與 Excel 中相同的值。
例如,在 Excel 中,此列如下所示:
11:00
12:00
13:00
14:00
.
.
.
現在我希望在我閱讀 excel 檔案時在我的代碼中使用它。但是與其他小時比較存在問題,因為excel中此列的型別是自定義的,如果我將其更改為 DateTime 這個更改完整值?
我像這樣從 Excel 中讀取值:
var loadTimeCell = (rangeSheet2.Cells[rCnt2, 2] as Excel.Range).Value2;
uj5u.com熱心網友回復:
TimeValue 函式應該為您完成。這會將文本字串轉換為時間值。像這樣的東西可以完成這項作業:
y = rangeSheet2.Cells[rCnt2, 2].text
loadTimeCell = TimeValue(y)
或者你也可以使用這個:
var loadTimeCell = TimeValue(cstr((rangeSheet2.Cells[rCnt2, 2] as Excel.Range).Value2));
uj5u.com熱心網友回復:
我不知道您為此使用什么庫,但您可以嘗試我維護的這個備用庫:Sylvan.Data.Excel,它應該能夠讀取這些資料。這是一個完整的 C# 10 示例控制臺應用程式,展示了如何從僅時間格式化的列中讀取值:
using Sylvan.Data.Excel;
var edr = ExcelDataReader.Create("data.xlsx");
// assumes a header row with column names.
var timeIdx = edr.GetOrdinal("Time");
while (edr.Read())
{
// read the value as a DateTime. Date component will be 0001-01-01.
var dt = edr.GetDateTime(timeIdx);
// Get the time of day.
var time = dt.TimeOfDay;
Console.WriteLine(time);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415404.html
標籤:
