Как управлять датами и временем
Как хранить даты и время в Excel
Даты и время хранятся в ячейках в виде чисел. Таким образом, значения ячеек, которые содержат даты и времена, имеют числовой тип. Число, которое указывает дату и время, состоит из компонентов даты (целая часть) и времени (дробная часть). Свойство Cell.DoubleValue возвращает это число.
Как отображать даты и время в Aspose.Cells
Чтобы отобразить число как дату и время, примените необходимый формат даты и времени к ячейке через свойство Style.number или Style.Custom. Свойство CellValue.DateTimeValue возвращает объект DateTime, который указывает дату и время, представленное числом, содержащимся в ячейке.
Как переключить две системы дат в Aspose.Cells
MS-Excel хранит даты как числа, которые называются серийными значениями. Серийное значение - это целое число, которое представляет собой количество прошедших дней с первого дня в системе дат. Excel поддерживает следующие системы дат для серийных значений:
- Система дат 1900 года. Первая дата - 1 января 1900 года, а ее серийное значение - 1. Последняя дата - 31 декабря 9999 года, ее серийное значение - 2 958 465. Эта система дат используется в книге по умолчанию.
- Система дат 1904. Первая дата — 1 января 1904 года, её серийное значение 0. Последняя дата — 31 декабря 9999 года, её серийное значение 2 957 003. Чтобы использовать эту систему дат в книге, установите свойство Workbook.settings.date1904 в значение true.
Этот пример показывает, что серийные значения, хранящиеся на одной дате в разных системах дат, различны.
from aspose.cells import CellValueType, Workbook | |
from datetime import datetime | |
# Instantiating an Workbook object | |
workbook = Workbook() | |
workbook.settings.date1904 = False | |
# Obtaining the reference of the newly added worksheet | |
ws = workbook.worksheets[0] | |
cells = ws.cells | |
dateData = datetime(2023, 11, 23) | |
# Setting the DateTime value to the cells | |
a1 = cells.get("A1") | |
a1.put_value(dateData) | |
# Check if the cell contains a numeric value | |
if a1.type == CellValueType.IS_NUMERIC: | |
print("A1 is Numeric Value: " + str(a1.double_value)) | |
workbook.settings.date1904 = True | |
print("use The 1904 date system====================") | |
# Setting the DateTime value to the cells | |
a2 = cells.get("A2") | |
a2.value = dateData | |
# Check if the cell contains a numeric value | |
if a2.type == CellValueType.IS_NUMERIC: | |
print("A2 is Numeric Value: " + str(a2.double_value)) |
A1 is Numeric Value: 45253
use The 1904 date system====================
A2 is Numeric Value: 43791
Как установить значение DateTime в Aspose.Cells
Этот пример устанавливает значение DateTime в ячейке A1 и A2, устанавливает пользовательский формат для ячейки A1 и числовой формат для ячейки A2, а затем выводит типы значений.
from aspose.cells import CellValueType, Workbook | |
from datetime import datetime | |
# Instantiating an Workbook object | |
workbook = Workbook() | |
# Obtaining the reference of the newly added worksheet | |
ws = workbook.worksheets[0] | |
cells = ws.cells | |
# Setting the DateTime value to the cells | |
a1 = cells.get("A1") | |
a1.put_value(datetime.now()) | |
# Check if the cell contains a numeric value | |
if a1.type == CellValueType.IS_NUMERIC: | |
print("A1 is Numeric Value: " + str(a1.is_numeric_value)) | |
a1Style = a1.get_style() | |
# Set custom Datetime style | |
a1Style.custom = "mm-dd-yy hh:mm:ss" | |
a1.set_style(a1Style) | |
# Check if the cell contains a DateTime value | |
if a1.type == CellValueType.IS_DATE_TIME: | |
print("Cell A1 contains a DateTime value.") | |
else: | |
print("Cell A1 does not contain a DateTime value.") | |
# Setting the DateTime value to the cells | |
a2 = cells.get("A2") | |
a2.value = datetime.now() | |
# Check if the cell contains a numeric value | |
if a2.type == CellValueType.IS_NUMERIC: | |
print("A2 is Numeric Value: " + str(a2.is_numeric_value)) | |
a2Style = a2.get_style() | |
# Set the display format of numbers and dates. | |
a2Style.number = 22 | |
a2.set_style(a2Style) | |
# Check if the cell contains a DateTime value | |
if a2.type == CellValueType.IS_DATE_TIME: | |
print("Cell A2 contains a DateTime value.") | |
else: | |
print("Cell A2 does not contain a DateTime value.") |
Результат вывода:
A1 is Numeric Value: True
Cell A1 contains a DateTime value.
A2 is Numeric Value: True
Cell A2 contains a DateTime value.
Как получить значение DateTime в Aspose.Cells
Этот пример устанавливает значение DateTime в ячейке A1 и A2, устанавливает пользовательский формат для ячейки A1 и числовой формат для ячейки A2, проверяет типы значений двух ячеек, а затем выводит значение DateTime и отформатированную строку.
from aspose.cells import CellValueType, Workbook | |
from datetime import datetime | |
# Instantiating an Workbook object | |
workbook = Workbook() | |
# Obtaining the reference of the newly added worksheet | |
ws = workbook.worksheets[0] | |
cells = ws.cells | |
# Setting the DateTime value to the cells | |
a1 = cells.get("A1") | |
a1.put_value(datetime.now()) | |
# Check if the cell contains a numeric value | |
if a1.type == CellValueType.IS_NUMERIC: | |
print("A1 is Numeric Value: " + str(a1.is_numeric_value)) | |
a1Style = a1.get_style() | |
# Set custom Datetime style | |
a1Style.custom = "mm-dd-yy hh:mm:ss" | |
a1.set_style(a1Style) | |
# Check if the cell contains a DateTime value | |
if a1.type == CellValueType.IS_DATE_TIME: | |
print("Cell A1 contains a DateTime value.") | |
# Get the DateTime value | |
dateTimeValue = a1.date_time_value | |
# Now, you can use dateTimeValue as needed | |
print("A1 DateTime Value: " + str(dateTimeValue)) | |
# Output date formatted string | |
print("A1 DateTime String Value: " + a1.string_value) | |
else: | |
print("Cell A1 does not contain a DateTime value.") | |
# Setting the DateTime value to the cells | |
a2 = cells.get("A2") | |
a2.value = datetime.now() | |
# Check if the cell contains a numeric value | |
if a2.type == CellValueType.IS_NUMERIC: | |
print("A2 is Numeric Value: " + str(a2.is_numeric_value)) | |
a2Style = a2.get_style() | |
# Set the display format of numbers and dates. | |
a2Style.number = 22 | |
a2.set_style(a2Style) | |
# Check if the cell contains a DateTime value | |
if a2.type == CellValueType.IS_DATE_TIME: | |
print("Cell A2 contains a DateTime value.") | |
# Get the DateTime value | |
dateTimeValue = a2.date_time_value | |
# Now, you can use dateTimeValue as needed | |
print("A2 DateTime Value: " + str(dateTimeValue)) | |
# Output date formatted string | |
print("A2 DateTime String Value: " + a2.string_value) | |
else: | |
print("Cell A2 does not contain a DateTime value.") |
Результат вывода:
A1 is Numeric Value: True
Cell A1 contains a DateTime value.
A1 DateTime Value: 11/23/2023 5:59:09 PM
A1 DateTime String Value: 11-23-23 17:59:09
A2 is Numeric Value: True
Cell A2 contains a DateTime value.
A2 DateTime Value: 11/23/2023 5:59:09 PM
A2 DateTime String Value: 11/23/2023 17:59