1

Coldfusion 10 を使用しており、スプレッドシートを作成し、値が「8:30」の列をフォーマットして「h:mm」にフォーマットするテスト コードがあります。以下のようにコードします。

<cfset sObj = spreadsheetNew("true")>

<CFSET SpreadsheetFormatCell(sObj,{dataFormat="h:mm", alignment="right"}, 1, 2)>

<CFSET timehmm =  "8:30">
<cfset spreadsheetSetCellValue(sObj,"#timehmm#", 1, 2)>

<cfset SpreadSheetSetColumnWidth(sObj, 2, 11)>

<cfspreadsheet action="write" name="sObj" filename="..\TEST.xlsx" overwrite="true">

<cflocation url="EXCEL/TEST.xlsx" addtoken="no">

問題は、Excel ファイルで、値が 8:30 の列をクリックすると、挿入関数の入力ボックスに表示される値が 8:30 で、既にこれをフォーマットしているため、「8:30:00 AM」である必要があることです。細胞。

同じ値「8:30」を同じセルに入力し、セルをもう一度クリックすると。挿入関数ボックスの値が正しいことを確認できます。これは「8:30:00 AM」です。

後で合計できるように、この形式をセルに設定する必要があるため、コードの何が問題なのかを指摘してください。現在、セルはテキスト形式として識別されているようで、合計することはできません。

ありがとう。

4

2 に答える 2

1

コード自体が間違っているとは思いません。CF10の基本的な機能だけでは無理だと思います。CF は暗黙的に日付/時刻文字列を正しく処理しているようですが、「時刻」文字列は処理していません。新しいパラメーターを使用して、CF11 でサポートされる可能があります。datatype

回避策は、POI DateUtilクラスを使用して、時間文字列を Excel が解釈できる数値に変換することです。注: 時間文字列には 24 時間制を使用する必要があります

<cfset sObj = spreadsheetNew("true")>
<cfset util = createObject("java", "org.apache.poi.ss.usermodel.DateUtil")>

<cfset SpreadsheetFormatCell(sObj,{dataFormat="h:mm"}, 1, 2)>
<cfset timeValue = util.convertTime("8:30")>
<cfset spreadsheetSetCellValue(sObj, timeValue, 1, 2)>
于 2014-09-26T20:41:02.853 に答える
0

ドキュメントによると、h:mm AM/PM は h:mm とは別の形式です。h:mm AM/PM を試しましたか?

于 2014-09-26T10:31:30.437 に答える