Cortar, copiar y pegar intervalos mediante la API de JavaScript de Excel
En este artículo se proporcionan ejemplos de código que cortan, copian y pegan intervalos mediante la API de JavaScript de Excel. Para obtener la lista completa de propiedades y métodos que admite el Range
objeto, vea Clase Excel.Range.
Nota:
La API de JavaScript para Excel no tiene un objeto o clase de "Celda". En su lugar, se definen todas las celdas de Excel como objetos Range
. Una celda individual en la interfaz de usuario de Excel se traduce en un objeto Range
con una celda en la API de JavaScript para Excel. Un solo objeto Range
también puede contener varias celdas contiguas. Consulte Trabajar con celdas mediante la API de JavaScript para Excel para obtener más información.
Sugerencia
Para experimentar con las API de cortar, copiar y pegar de este artículo en un ejemplo completo, abra El laboratorio de scripts en Excel y seleccione Copiar y pegar rangos en nuestra biblioteca de ejemplos .
Copy and paste
El método Range.copyFrom replica las acciones Copiar y Pegar de la interfaz de usuario de Excel. El destino es el Range
objeto al que copyFrom
se llama. El origen que se va a copiar se pasa como un rango o una dirección de cadena que representa un rango.
El siguiente ejemplo de código copia los datos de A1:E1 en el rango que empieza en G1 (que pega en G1:K1).
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
// Copy everything from "A1:E1" into "G1" and the cells afterwards ("G1:K1").
sheet.getRange("G1").copyFrom("A1:E1");
await context.sync();
});
Range.copyFrom
tiene tres parámetros opcionales
copyFrom(sourceRange: Range | RangeAreas | string, copyType?: Excel.RangeCopyType, skipBlanks?: boolean, transpose?: boolean): void;
copyType
especifica qué datos se copian del origen en el destino.
Excel.RangeCopyType.formulas
transfiere las fórmulas en las celdas de origen y conserva el posicionamiento relativo de los intervalos de esas fórmulas. Las entradas que no corresponden a fórmulas se copian tal como están.Excel.RangeCopyType.values
copia los valores de datos y, en el caso de las fórmulas, el resultado de la fórmula.Excel.RangeCopyType.formats
copia el formato del intervalo, incluidos la fuente, el color y otras opciones de formato, pero sin valores.Excel.RangeCopyType.all
(la opción predeterminada) copia los datos y el formato, conservando las fórmulas de las celdas si se encuentran.
skipBlanks
establece si las celdas en blanco se copian en el destino. Cuando es true, copyFrom
omite las celdas en blanco en el intervalo de origen.
Las celdas omitidas no sobrescribirán los datos existentes de las celdas correspondientes en el intervalo de destino. El valor predeterminado es falso.
transpose
determina si se trasladan los datos, lo que significa que sus filas y columnas se cambian a la ubicación de origen.
Un rango cambiado se voltea a lo largo de la diagonal principal, por lo que las filas 1, 2, y 3 se convertirán en las columnas A, B, y C.
El siguiente ejemplo de código y las imágenes muestran este comportamiento en un escenario simple.
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
// Copy a range, omitting the blank cells so existing data is not overwritten in those cells.
sheet.getRange("D1").copyFrom("A1:C1",
Excel.RangeCopyType.all,
true, // skipBlanks
false); // transpose
// Copy a range, including the blank cells which will overwrite existing data in the target cells.
sheet.getRange("D2").copyFrom("A2:C2",
Excel.RangeCopyType.all,
false, // skipBlanks
false); // transpose
await context.sync();
});
Datos antes de copiar y pegar el intervalo
Datos después de copiar y pegar el intervalo
Cortar y pegar celdas (mover)
El método Range.moveTo mueve las celdas a una nueva ubicación del libro. Este comportamiento de movimiento de celda funciona igual que cuando las celdas se mueven arrastrando el borde del rango o al realizar las acciones Cortar y Pegar . Tanto el formato como los valores del intervalo se mueven a la ubicación especificada como destinationRange
parámetro.
En el ejemplo de código siguiente se mueve un intervalo con el Range.moveTo
método . Tenga en cuenta que si el intervalo de destino es menor que el origen, se expandirá para abarcar el contenido de origen.
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getActiveWorksheet();
sheet.getRange("F1").values = [["Moved Range"]];
// Move the cells "A1:E1" to "G1" (which fills the range "G1:K1").
sheet.getRange("A1:E1").moveTo("G1");
await context.sync();
});
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de