2

現在、cfspreadsheet を使用して、アプリにインポートされている Excel スプレッドシートを処理しています。

現在、スプレッドシートをメモリに保存した後で QoQ オブジェクトを操作しようとしているため、データからインポートされたデータ型を検証する簡単な方法はありません。

クエリ オブジェクトをループして、クエリ データセットの各列のデータ型を検出する簡単な方法はありますか?

<cfspreadsheet action="read" src="#form.uploadedFile#" query="mycontent" headerrow="1" excludeheaderrow="yes">  

<cfquery name="mycontent" dbtype="query">
SELECT *
FROM mycontent
</cfquery>

クエリのメタデータ関数を探してみましたが、見つからないようです

4

1 に答える 1

2

いいえ。スプレッドシートから読み取った値のデータ型 (より正確には「セル型」) を返す組み込みメソッドはありません。その情報にアクセスするには、基になる POI ライブラリを使用する必要があります。

さらに、ダンが上でほのめかしたように、「セルの種類」とクエリの「データの種類」の間に正確な相関関係はありません。データベース テーブルとは異なり、スプレッドシートには同じ列内に複数の種類のセルが含まれる場合があります。列の最初のセルに日付が含まれているからといって、その列のすべてのセルにも日付が含まれているとは限りません。これが、結果のすべてのクエリ列に type が割り当てられる理由の 1 つですvarchar。技術的には、スプレッドシートに関しては「列」データ型はありません。

とはいえ、ここでは、 POI を使用して個々の細胞の種類を抽出する方法の例を示します。主に cell formatを調べることを目的としていますが、基本的な概念は同じです。

最終的な目標について詳しく教えてください。つまり、この情報をどのように使用する予定ですか。また、QoQ とどのように関連していますか?

于 2013-09-05T13:19:40.487 に答える