Comment gérer les dates et heures
Comment stocker les dates et heures dans Excel
Les dates et heures sont stockées dans les cellules sous forme de nombres. Ainsi, les valeurs des cellules contenant des dates et heures sont de type numérique. Un nombre spécifiant une date et une heure se compose de la composante date (partie entière) et de la composante heure (partie fractionnaire). La propriété Cell.doubleValue retourne ce nombre.
Comment afficher les dates et heures dans Aspose.Cells
Pour afficher un nombre comme une date et une heure, appliquez le format de date et d’heure requis à une cellule via la propriété Style.number ou Style.Custom . La propriété CellValue.dateTimeValue retourne l’objet DateTime, qui spécifie la date et l’heure représentées par le nombre contenu dans une cellule.
Comment passer de deux systèmes de dates dans Aspose.Cells
MS-Excel stocke les dates sous forme de nombres appelés valeurs sérielles. Une valeur sérielle est un entier qui représente le nombre de jours écoulés depuis le premier jour du système de date. Excel prend en charge les systèmes de date suivants pour les valeurs sérielles:
- Le système de date 1900. La première date est le 1er janvier 1900, et sa valeur sérielle est 1. La dernière date est le 31 décembre 9999, et sa valeur sérielle est 2 958 465. Ce système de date est utilisé par défaut dans le classeur.
- Le système de dates 1904. La première date est le 1er janvier 1904, et sa valeur sériale est 0. La dernière date est le 31 décembre 9999, et sa valeur sériale est 2 957 003. Pour utiliser ce système de dates dans le classeur, définissez la propriété WorkbookSettings.date1904 sur true.
Cet exemple montre que les valeurs sérielles stockées à la même date dans différents systèmes de dates sont différentes.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.Cells Date System Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Utils } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
// Creating a new Workbook object
const workbook = new Workbook();
// Set 1900/1904 date system to false (1900 system)
workbook.settings.date1904 = false;
// Obtaining the reference of the newly added worksheet (first worksheet)
const ws = workbook.worksheets.get(0);
const cells = ws.cells;
const dateData = new Date(2023, 10, 23); // JavaScript months are 0-based
// Setting the DateTime value to the cells (A1)
const a1 = cells.get("A1");
a1.value = dateData;
let resultHtml = '';
// Check if the cell contains a numeric value
if (a1.type === AsposeCells.CellValueType.IsNumeric) {
resultHtml += `<p>A1 is Numeric Value: ${a1.doubleValue}</p>`;
console.log("A1 is Numeric Value: " + a1.doubleValue);
} else {
resultHtml += `<p>A1 is not numeric. Cell type: ${a1.type}</p>`;
}
// Use the 1904 date system now
workbook.settings.date1904 = true;
console.log("use The 1904 date system====================");
// Setting the DateTime value to the cells (A2) using setter conversion
const a2 = cells.get("A2");
a2.value = dateData;
// Check if the cell contains a numeric value
if (a2.type === AsposeCells.CellValueType.IsNumeric) {
resultHtml += `<p>A2 is Numeric Value: ${a2.doubleValue}</p>`;
console.log("A2 is Numeric Value: " + a2.doubleValue);
} else {
resultHtml += `<p>A2 is not numeric. Cell type: ${a2.type}</p>`;
}
// Save the workbook to a downloadable file
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = `<p style="color: green;">Operation completed successfully!</p>${resultHtml}`;
});
</script>
</html>
Résultat de la sortie :
A1 is Numeric Value: 45253
use The 1904 date system====================
A2 is Numeric Value: 43791
Comment définir la valeur DateTime dans Aspose.Cells
Cet exemple définit une valeur DateTime dans la cellule A1 et A2, définit un format personnalisé pour A1 et un format numérique pour A2, puis affiche les types de valeurs.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Example Title</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Utils } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
if (!fileInput.files.length) {
// No file selected - proceed with a new blank workbook (matches original JavaScript behavior)
document.getElementById('result').innerHTML = '<p>No file selected. A new workbook will be created and modified.</p>';
}
// Instantiate or load workbook
let workbook;
if (fileInput.files.length) {
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
workbook = new Workbook(new Uint8Array(arrayBuffer));
} else {
workbook = new Workbook();
}
// Obtaining the reference of the first worksheet
let ws = workbook.worksheets.get(0);
let cells = ws.cells;
// Setting the DateTime value to the cell A1
let a1 = cells.get("A1");
a1.putValue(new Date());
// Check if the cell contains a numeric value
if (a1.type === AsposeCells.CellValueType.IsNumeric) {
console.log("A1 is Numeric Value: " + a1.isNumericValue());
}
let a1Style = a1.style;
// Set custom Datetime style
a1Style.custom = "mm-dd-yy hh:mm:ss";
a1.style = a1Style;
// Check if the cell contains a DateTime value
if (a1.type === AsposeCells.CellValueType.IsDateTime) {
console.log("Cell A1 contains a DateTime value.");
} else {
console.log("Cell A1 does not contain a DateTime value.");
}
// Setting the DateTime value to the cell A2
let a2 = cells.get("A2");
a2.putValue(new Date());
// Check if the cell contains a numeric value
if (a2.type === AsposeCells.CellValueType.IsNumeric) {
console.log("A2 is Numeric Value: " + a2.isNumericValue());
}
let a2Style = a2.style;
// Set the display format of numbers and dates.
a2Style.number = 22;
a2.style = a2Style;
// Check if the cell contains a DateTime value
if (a2.type === AsposeCells.CellValueType.IsDateTime) {
console.log("Cell A2 contains a DateTime value.");
} else {
console.log("Cell A2 does not contain a DateTime value.");
}
// Saving the modified Excel file
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Operation completed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Résultat de la sortie :
A1 is Numeric Value: True
Cell A1 contains a DateTime value.
A2 is Numeric Value: True
Cell A2 contains a DateTime value.
Comment obtenir la valeur DateTime dans Aspose.Cells
Cet exemple définit une valeur DateTime dans la cellule A1 et A2, définit un format personnalisé pour A1 et un format numérique pour A2, vérifie les types de valeurs de deux cellules, puis affiche la valeur DateTime et la chaîne formatée.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
<meta charset="utf-8" />
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
#downloadLink { margin-top: 10px; display: inline-block; }
#result p { margin: 8px 0; }
</style>
</head>
<body>
<h1>DateTime Cells Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Utils } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const resultDiv = document.getElementById('result');
resultDiv.innerHTML = '';
const fileInput = document.getElementById('fileInput');
let workbook;
if (fileInput.files.length) {
const arrayBuffer = await fileInput.files[0].arrayBuffer();
workbook = new Workbook(new Uint8Array(arrayBuffer));
} else {
workbook = new Workbook();
}
// Obtaining the reference of the first worksheet
const ws = workbook.worksheets.get(0);
const cells = ws.cells;
// Setting the DateTime value to cell A1
const a1 = cells.get("A1");
a1.putValue(new Date());
// Check if the cell contains a numeric value
if (a1.type === AsposeCells.CellValueType.IsNumeric) {
console.log("A1 is Numeric Value: " + a1.isNumericValue);
resultDiv.innerHTML += `<p>A1 is Numeric Value: ${a1.isNumericValue}</p>`;
}
let a1Style = a1.style;
// Set custom Datetime style
a1Style.custom = "mm-dd-yy hh:mm:ss";
a1.style = a1Style;
// Check if the cell contains a DateTime value
if (a1.type === AsposeCells.CellValueType.IsDateTime) {
console.log("Cell A1 contains a DateTime value.");
const dateTimeValue = a1.dateTimeValue;
console.log("A1 DateTime Value: " + dateTimeValue);
console.log("A1 DateTime String Value: " + a1.stringValue);
resultDiv.innerHTML += `<p>Cell A1 contains a DateTime value: ${a1.stringValue}</p>`;
} else {
console.log("Cell A1 does not contain a DateTime value.");
resultDiv.innerHTML += `<p>Cell A1 does not contain a DateTime value.</p>`;
}
// Setting the DateTime value to cell A2
const a2 = cells.get("A2");
a2.putValue(new Date());
// Check if the cell contains a numeric value
if (a2.type === AsposeCells.CellValueType.IsNumeric) {
console.log("A2 is Numeric Value: " + a2.isNumericValue);
resultDiv.innerHTML += `<p>A2 is Numeric Value: ${a2.isNumericValue}</p>`;
}
let a2Style = a2.style;
// Set the display format of numbers and dates.
a2Style.number = 22;
a2.style = a2Style;
// Check if the cell contains a DateTime value
if (a2.type === AsposeCells.CellValueType.IsDateTime) {
console.log("Cell A2 contains a DateTime value.");
const dateTimeValue = a2.dateTimeValue;
console.log("A2 DateTime Value: " + dateTimeValue);
console.log("A2 DateTime String Value: " + a2.stringValue);
resultDiv.innerHTML += `<p>Cell A2 contains a DateTime value: ${a2.stringValue}</p>`;
} else {
console.log("Cell A2 does not contain a DateTime value.");
resultDiv.innerHTML += `<p>Cell A2 does not contain a DateTime value.</p>`;
}
// Saving the modified Excel file
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.xlsx';
downloadLink.style.display = 'inline-block';
downloadLink.textContent = 'Download Excel File';
resultDiv.innerHTML += '<p style="color: green;">Operation completed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>
Résultat de la sortie :
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