Excelスプレッドシートを指定したユーザーの列のデータ型を知る必要があるいくつかの機能に取り組んでいます。これらのスプレッドシートにはさまざまな形式があり、最初の行が列の名前である以外に標準形式はありません。私が抱えている問題は、整数と DateTime 列を区別できることです。現在、次の関数を使用して、セルが DateTime セルかどうかを判断しています。
private bool isOADate(double Val)
{
try
{
DateTime dt = DateTime.FromOADate(Val);
return true;
}
catch (ArgumentException)
{
return false;
}
}
ただし、セルに 1、2、3 などがある場合、これらを 1899/12/31 12:00:00 AM、1900/01/01 12:00:00 AM に変換できるため、この関数は true を返します。 1900/01/02 12:00:00 AM それぞれ。セルの DateTime データ型を決定するより良い方法はありますか? または、それらを区別するために、現在の機能の改善を提案できますか?