Gestión de Rangos con JavaScript a través de C++
Introducción
En Excel, puedes seleccionar múltiples celdas con una selección de caja con ratón; el conjunto de celdas seleccionadas se llama “Rango”.
Por ejemplo, puedes hacer clic en el botón izquierdo del mouse en la Celda “A1” de Excel y luego arrastrar hasta la celda “C4”. La área rectangular que seleccionaste también puede ser creada fácilmente como un objeto usando Aspose.Cells for JavaScript a través de C++.
Aquí tienes cómo crear un rango, poner un valor, establecer un estilo y realizar más operaciones en el objeto “Rango”.
Gestión de Rangos Usando Aspose.Cells for JavaScript a través de C++
Aspose.Cells proporciona una clase, Workbook que representa un archivo de Microsoft Excel. La clase Workbook contiene una colección Workbook.worksheets que permite el acceso a cada hoja de cálculo en un archivo de Excel. Una hoja de cálculo está representada por la clase Worksheet. La clase Worksheet proporciona una colección cells.
Crear rango
Cuando quieras crear un área rectangular que se extienda sobre A1:C4, puedes usar el siguiente código:
<!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');
const resultDiv = document.getElementById('result');
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object from the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Get Cells (converted from getWorksheets().get(0).getCells() to properties)
const cells = workbook.worksheets.get(0).cells;
// Create Range A1:C4
const range = cells.createRange("A1:C4");
// Save the workbook and provide a download link
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 Modified Excel File';
resultDiv.innerHTML = '<p style="color: green;">Range A1:C4 created successfully. Click the download link to get the modified file.</p>';
});
</script>
</html>
Poner valor en las celdas del rango
Digamos que tienes un rango de celdas que se extiende sobre A1:C4. La matriz hace 4 * 3 = 12 celdas. Las celdas de rango individuales están dispuestas secuencialmente: Rango[0,0], Rango[0,1], Rango[0,2], Rango[1,0], Rango[1,1], Rango[1,2], Rango[2,0], Rango[2,1], Rango[2,2], Rango[3,0], Rango[3,1], Rango[3,2].
El siguiente ejemplo muestra cómo introducir algunos valores en las celdas del rango.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Range Value Example</title>
</head>
<body>
<h1>Range Value 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');
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();
}
const worksheet = workbook.worksheets.get(0);
const cells = worksheet.cells;
const range = cells.createRange("A1:C4");
range.get(0, 0).value = "A1";
range.get(0, 1).value = "B1";
range.get(0, 2).value = "C1";
range.get(3, 0).value = "A4";
range.get(3, 1).value = "B4";
range.get(3, 2).value = "C4";
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'RangeValueTest.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Workbook created and ready for download.</p>';
});
</script>
</html>
Establecer estilo de las celdas del rango
El ejemplo siguiente muestra cómo establecer el estilo de las celdas del rango.
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Range Style 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');
const resultDiv = document.getElementById('result');
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();
}
// Gets Cells
const cells = workbook.worksheets.get(0).cells;
// Creates Range
const range = cells.createRange("A1:C4");
// Puts value
range.get(0, 0).value = "A1";
range.get(3, 2).value = "C4";
// Sets Style
let style00 = workbook.createStyle();
style00.pattern = AsposeCells.BackgroundType.Solid;
style00.foregroundColor = new AsposeCells.Color(255, 0, 0); // Red
range.get(0, 0).style = style00;
let style32 = workbook.createStyle();
style32.pattern = AsposeCells.BackgroundType.HorizontalStripe;
style32.foregroundColor = new AsposeCells.Color(0, 255, 0); // Green
range.get(3, 2).style = style32;
// Saves the Workbook
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'RangeStyleTest.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
resultDiv.innerHTML = '<p style="color: green;">Workbook created successfully. Click the download link to save the file.</p>';
});
</script>
</html>
Obtener la región actual del rango
CurrentRegion es una propiedad que devuelve un objeto Range que representa la región actual.
La región actual es un rango delimitado por cualquier combinación de filas y columnas en blanco. Solo lectura.
En Excel, puedes obtener el área de CurrentRegion mediante:
- Selecciona un área (rango1) con el cuadro del ratón.
- Haz clic en “Inicio - Edición - Buscar y Seleccionar - Ir a especial - Región actual”, o usa “Ctrl+Shift+*”, verás que Excel te ayuda automáticamente a seleccionar un área (rango2). Ahora lo has logrado, rango2 es la RegiónActual de rango1.
Por favor, descarga el siguiente archivo de prueba, ábrelo en Excel, usa el cuadro del ratón para seleccionar un área “A1:D7”, luego presiona “Ctrl+Shift+*”, verás que el área “A1:C3” está seleccionada.
Ahora por favor ejecuta el siguiente ejemplo para ver cómo funciona en Aspose.Cells:
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example</title>
</head>
<body>
<h1>Get Current Region 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 (!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();
// Creating a Workbook from the uploaded file
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Accessing the first worksheet in the Excel file
const worksheet = workbook.worksheets.get(0);
// Get Cells
const cells = worksheet.cells;
// Create Range
const src = cells.createRange("A1:D7");
// Get CurrentRegion (converted from getCurrentRegion())
const A1C3 = src.currentRegion;
// Save the workbook (no modifications were required by original code)
const outputData = workbook.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.current_region.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Current region obtained successfully. Click the download link to download the file.</p>';
});
</script>
</html>
Temas avanzados
- Rango de AutoFill del archivo de Excel
- Copiar rangos de Excel
- Copiar solo datos de rango
- Copiar datos de rango con estilo
- Copiar solo estilo de rango
- Crear rango de unión
- Cortar y pegar rango
- Eliminar rangos
- Obtener dirección Celda Contar Desplazamiento Toda la columna y Toda la fila del Rango
- Insertar rangos
- Combinar o dividir rango de celdas
- Mover rango de celdas en una hoja de cálculo
- Crear rangos con nombre con ámbito de libro de trabajo y hoja de cálculo
- Buscar y reemplazar datos en un rango