Формат данных настроек электронной таблицы Coldfusion (ч: мм)

Я использую Coldfusion 10, и у меня есть тестовый код для создания электронной таблицы и форматирования столбца со значением «8:30» для формата «ч: мм». Код, как показано ниже:

<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», поскольку я уже отформатировал это клетка.

Если я ввожу в ту же ячейку то же значение «8:30» и снова щелкаю ячейку. Я вижу, что значение в поле функции вставки правильное: «8:30:00».

Пожалуйста, помогите указать, что не так с моим кодом, так как мне нужно установить этот формат для ячейки, чтобы его можно было подвести позже. В настоящее время ячейка выглядит так, как будто она была идентифицирована как текстовый формат и не может быть суммирована.

Спасибо.


person Adrienne    schedule 26.09.2014    source источник
comment
Что именно вы хотите обобщить? Другими словами, 8:30 представляет собой время суток или 510 минут?   -  person Dan Bracuk    schedule 26.09.2014


Ответы (2)


Я не думаю, что код сам по себе делает что-то не так. Я просто не думаю, что это возможно только с базовыми функциями 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)>
person Leigh    schedule 26.09.2014

Согласно документам, ч:мм AM/PM — это отдельный формат от ч:мм. Вы пробовали ч:мм AM/PM?

person Raymond Camden    schedule 26.09.2014
comment
Неее - это тоже не работает. Ну, я бы сказал, просто отформатируйте его правильно. - person Raymond Camden; 26.09.2014