管理Excel文件的数据
如何向单元格添加数据
Aspose.Cells for Java通过C++脚本提供了一个类,Workbook,表示一个Microsoft Excel文件。Workbook类包含一个worksheets集合,可以访问Excel文件中的每个工作表。一个工作表由Worksheet类表示。Worksheet类提供一个cells集合,集合中的每个项目代表一个Cell类的对象。
Aspose.Cells允许开发者通过调用Cell类的putValue方法向工作表中的单元格添加数据。Aspose.Cells提供了putValue方法的重载版本,允许开发者向单元格添加不同类型的数据。使用这些重载版本的putValue方法,可以向单元格添加布尔值、字符串、双精度、整数或日期/时间等值。
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Aspose.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 } = 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 a file is provided, open it; otherwise create a new 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
const worksheet = workbook.worksheets.get(0);
// Adding values to cells
const cells = worksheet.cells;
const cellA1 = cells.get("A1");
cellA1.value = "Hello World";
const cellA2 = cells.get("A2");
cellA2.value = 20.5;
const cellA3 = cells.get("A3");
cellA3.value = 15;
const cellA4 = cells.get("A4");
cellA4.value = true;
const cellA5 = cells.get("A5");
cellA5.value = new Date();
// Setting the display format of the date
let style = cellA5.style;
style.number = 15;
cellA5.style = style;
// Saving the Excel file
const outputData = workbook.save(SaveFormat.Excel97To2003);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.xls';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created/modified successfully. Click the download link to get the file.</p>';
});
</script>
</html>
如何提高效率
如果你使用putValue方法将大量数据放入工作表,应该先按行、再按列向单元格添加值。这种方法极大地提高了应用程序的效率。
如何从单元格中检索数据
Aspose.Cells for JavaScript通过C++提供一个类,Workbook,代表一个微软Excel文件。Workbook类包含一个worksheets集合,可以访问文件中的工作表。一个工作表由Worksheet类表示。Worksheet类提供一个cells集合。cells集合中的每个项目代表一个Cell类的对象。
Cell类提供了多个属性,允许开发者根据数据类型从单元格中检索值。这些属性包括:
- stringValue:返回单元格的字符串值。
- doubleValue:返回单元格的双精度值。
- boolValue:返回单元格的布尔值。
- dateTimeValue:返回单元格的日期/时间值。
- floatValue:返回单元格的浮点值。
- intValue:返回单元格的整数值。
当字段未填写时,包含doubleValue或floatValue的单元格会抛出异常。
还可以通过使用Cell类的type方法检查单元格中包含的数据类型。实际上,Cell类的type方法基于以下列出的一组预定义值的CellValueType枚举:
| 单元格值类型 | 描述 |
|---|---|
| IsBool | 指定单元格值为布尔类型。 |
| IsDateTime | 指定单元格值为日期/时间类型。 |
| IsNull | 表示空白单元格。 |
| IsNumeric | 指定单元格值为数值类型。 |
| IsString | 指定单元格值为字符串类型。 |
| IsUnknown | 指定单元格值为未知类型。 |
你还可以使用上面预定义的单元格值类型与每个单元格中实际数据的类型进行比较。
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Read Cell Values 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, Worksheet, Cell } = 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) {
document.getElementById('result').innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Opening an existing workbook from uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Accessing first worksheet
const worksheet = workbook.worksheets.get(0);
var cells = worksheet.cells;
var maxRow = cells.maxRow;
var maxColumn = cells.maxColumn;
let logs = [];
for (let i = 0; i <= maxRow; i++) {
for (let j = 0; j <= maxColumn; j++)
{
const cell1 = cells.get(i, j);
if (!cell1) {
continue;
}
// Variables to store values of different data types
let stringValue;
let doubleValue;
let boolValue;
let dateTimeValue;
// Passing the type of the data contained in the cell for evaluation
switch (cell1.type) {
// Evaluating the data type of the cell data for string value
case AsposeCells.CellValueType.IsString:
stringValue = cell1.stringValue;
console.log("String Value: " + stringValue);
logs.push("String Value: " + stringValue);
break;
// Evaluating the data type of the cell data for double value
case AsposeCells.CellValueType.IsNumeric:
doubleValue = cell1.doubleValue;
console.log("Double Value: " + doubleValue);
logs.push("Double Value: " + doubleValue);
break;
// Evaluating the data type of the cell data for boolean value
case AsposeCells.CellValueType.IsBool:
boolValue = cell1.boolValue;
console.log("Bool Value: " + boolValue);
logs.push("Bool Value: " + boolValue);
break;
// Evaluating the data type of the cell data for date/time value
case AsposeCells.CellValueType.IsDateTime:
dateTimeValue = cell1.dateTimeValue;
console.log("DateTime Value: " + dateTimeValue);
logs.push("DateTime Value: " + dateTimeValue);
break;
// Evaluating the unknown data type of the cell data
case AsposeCells.CellValueType.IsUnknown:
stringValue = cell1.stringValue;
console.log("Unknown Value: " + stringValue);
logs.push("Unknown Value: " + stringValue);
break;
// Terminating the type checking of type of the cell data is null
case AsposeCells.CellValueType.IsNull:
break;
}
}
}
document.getElementById('result').innerHTML = `<p style="color: green;">Operation completed successfully! See console for detailed cell values.</p><pre>${logs.join("\n")}</pre>`;
});
</script>
</html>