Red de conocimientos turísticos - Información de alquiler - Entre las siguientes opciones, ¿cuál es un lenguaje de alto nivel para Windows Excel?

Entre las siguientes opciones, ¿cuál es un lenguaje de alto nivel para Windows Excel?

Los archivos Excel son archivos de datos comunes y se utilizan a menudo en el proceso de análisis de datos. A veces necesitamos usar código de programa para realizar algún procesamiento automatizado en archivos de Excel, lo que requiere un lenguaje de programación que pueda analizar fácilmente datos de Excel.

Los lenguajes de programación que se pueden utilizar para analizar y procesar archivos Excel generalmente incluyen los siguientes:

1. ¿Lenguajes de programación convencionales de alto nivel, como Java?

p>

2, ¿Excel VBA?

3. ¿Python?

4. esProc SPL

Este artículo presenta las características de los lenguajes de programación anteriores. Al analizar archivos de Excel por turno, solo se presentará brevemente cómo leer archivos de Excel en datos estructurados, que luego pueden usarse para recálculos o almacenamiento u otros fines.

1. Lenguajes de alto nivel (tomando Java como ejemplo)

Casi todos los lenguajes de alto nivel pueden leer archivos de datos de Excel, pero depende de si hay un tercero. party proporciona una API profesional para la lectura. De lo contrario, el programador debe comprender la estructura del archivo de datos de Excel y escribir un programa para leer los datos, lo cual es una carga de trabajo muy pesada. Afortunadamente, Apache proporciona un paquete poi de código abierto para que Java lea y escriba archivos de Excel. Puede leer los datos y atributos de cada celda. Veamos cómo usar poi para leer archivos de Excel en datos estructurados.

Primero veamos un archivo muy simple: la primera fila es el encabezado de la columna y la segunda fila hasta la última fila es la fila de datos.

El contenido del archivo es el siguiente:

Use Java para llamar a poi para leer datos, y el programa escrito es el siguiente:

DataSet ds = null ? se utiliza para guardar datos de Excel. Para leer los datos, debe escribir su propio HSSFWorkbook wb = new HSSFWorkbook( new FileInputStream( "simple.xls" ) ); los datos a leer están en la primera hoja int filas = hoja.getLastRowNum();int cols = hoja.getRow(0).getLastCellNum();ds = new DataSet( filas, columnas );for( int fila = 0; fila <= filas++ ) {

HSSFRow r = hoja.getRow( fila );

for( int col = 0; col <= cols; col++ ) {

HSSFCell cell = r.getCell ( col );

int type = cell.getCellType();

Objeto cellValue //Valor de datos de celda objeto switch( tipo; ) { ? // Según el tipo de datos de la celda, procesa el valor de la cuadrícula en el objeto Java correspondiente case HSSFCell.CELL_TYPE_STRING:

......

case HSSFCell.CELL_TYPE_NUMERIC:

.. ....

......

//El código de procesamiento del valor de la celda es relativamente largo y se omite aquí }

if( fila == 0 ) ds.setColTitle( columna, (String)cellValue );

si no ds.setCellValue( fila, columna, cellValue );

//Si es la primera fila, la celda El valor se establece en el encabezado de la columna; de lo contrario, se establece en los datos de la celda del conjunto de datos }}

Este código solo puede leer el archivo Excel en la forma más simple formato y también omite una gran cantidad de código para el procesamiento del valor de la celda, pero el código ya no es corto. Si el formato del archivo es más complejo, como cuadrículas de combinación, encabezados y pies de página complejos de varias líneas, registros de datos dispersos en varias líneas, tablas cruzadas, etc., el código del programa para leer los datos será más largo y complejo.

Se puede ver que incluso con un paquete de código abierto tan poderoso como poi, todavía es muy problemático usar Java para analizar Excel.

Además, los lenguajes de alto nivel solo proporcionan funciones relativamente básicas de bajo nivel y carecen de funciones profesionales de cálculo de datos estructurados, como filtrado de conjuntos de datos, clasificación, agrupación de estadísticas, conexiones, etc., todas las cuales requieren Los programadores deben escribirlos ellos mismos, por lo que incluso si se leen los datos, todavía queda mucho trabajo por hacer para los cálculos posteriores.

2. Excel VBA

VBA (Visual Basic para Aplicaciones) es un lenguaje de macros de Visual Basic que se puede utilizar principalmente para ampliar las funciones de las aplicaciones de Windows, especialmente el software de Microsoft Office. Como Word, Excel, Access, etc. El propósito de VBA para Excel es mejorar la flexibilidad y las capacidades de procesamiento de datos de Excel. VBA puede obtener datos de celda directamente, lo que equivale a tener capacidades de análisis natural, lo cual es mucho más conveniente que lenguajes de alto nivel como Java. Pero además, al igual que los lenguajes de alto nivel, todavía carece de funciones de cálculo estructuradas profesionales. Los cálculos posteriores después de leer los datos aún requieren escribir una gran cantidad de código de programa.

Por ejemplo, el código para escribir un resumen de grupo (columna de grupo A de la hoja 1 y columna de suma B) es el siguiente:

Public Sub test()

Atenuar Arr

Atenuar MiRng Como Rango

Atenuar i Mientras

Atenuar Dic Como Objeto

Establecer MyRng = Rango("A1 ").CurrentRegion Set MyRng = MyRng.Offset(1).Resize(MyRng.Rows.Count - 1, 2)

Set Dic = CreateObject("Scripting.dictionary") Arr = MyRng

Para i = 1 a UBound(Arr)

Si no es Dic.exists(Arr(i, 1)) entonces

Dic.Add Arr(i, 1) , Arr(i, 2)

Else

Dic.Item(Arr(i, 1)) = Dic.Item(Arr(i, 1)) + Arr(i, 2)

Finalizar si

Siguiente i

Sheet2.Range("A1") = "asunto" Sheet2.Range("A2").Resize( Dic.Count) =? Aplicación.WorksheetFunction.Transpose(Dic.keys) Sheet2.Range("B1") = "subtotal" Sheet2.Range("B2").Resize(Dic.Count) =? (Dic.items) Set Dic = NothingEnd Sub

Después de todo, analizamos el archivo de Excel para su posterior cálculo y procesamiento. El mero análisis en sí es inútil. VBA puede analizar naturalmente archivos de Excel, pero sus capacidades de procesamiento posterior son inconvenientes.

3. Python

Python pandas proporciona una interfaz para leer archivos de Excel. Para archivos de Excel de formato simple leídos con Java, el código leído con Python es el siguiente:

importar pandas como pdfile = 'simple.xls'data = pd.read_excel(file,sheet_name='Sheet1',header=0)

El parámetro header=0 indica que la primera fila es la columna encabezado y datos son el conjunto de datos estructurados leídos.

Para Excel con una estructura de encabezado más compleja, como la siguiente imagen:

El programa para leer este archivo usando Python es el siguiente:

importar pandas as pdfile = ' complex.xls'data = pd.read_excel(file,sheet_name='Sheet1',header=None,skiprows=)data.columns=['No', 'ItemCode', 'ItemName', 'Unit', 'Cantidad', 'Precio', 'Suma']

Al leer, use parámetros para especificar que no hay encabezado de tabla y omita las primeras 4 filas al leer, y comience a leer desde la quinta fila del área de datos (si hay una cola de tabla, está bien Especificar para ignorar las últimas líneas), la última línea del programa establece el nombre de la columna del conjunto de datos.

Los archivos Excel a menudo contienen datos de tabla cruzada, como la siguiente figura:

El programa para leer esta tabla cruzada es el siguiente:

importar pandas como pdfile = ' cross.xls'data = pd.read_excel(file,sheet_name='Sheet1',header=1)data = data.melt(id_vars=['Sin nombre: 0'],

value_vars=['Oeste ', 'Este','Centro', 'Norte','Sur', 'Noroeste','Suroeste'],

var_name='Área',

value_name=' Amount')data.rename(columns={'Unnamed: 0': 'Type'})

Los datos leídos se muestran a continuación:

Se puede ver que Python lee El código del archivo Excel es relativamente simple, lo que supone un gran paso adelante respecto a Java. Además, pandas encapsula muchas funciones de procesamiento de datos estructurados y proporciona un mejor soporte para cálculos posteriores que Java y VBA. Si se trata de un archivo pequeño que se puede leer en la memoria, se puede procesar de forma muy sencilla.

Desafortunadamente, Pandas no proporciona un método de procesamiento por lotes directo para archivos grandes, ya sea que los lea o los calcule, aún debe escribirlo usted mismo, lo cual es muy problemático. Puede consultar cómo Python maneja archivos grandes.

4. esProc SPL

esProc es una herramienta de procesamiento de datos profesional que proporciona varios métodos para leer archivos de Excel. Su lenguaje de programación SPL encapsula ricos cálculos de datos estructurados que pueden admitir perfectamente varios cálculos posteriores. cálculos, exportación y almacenamiento de datos, etc.

El programa de esProc para leer archivos Excel es muy sencillo, basta con escribir una línea de código:

1. xls" ).xlsimport@t()

La opción @t indica que la primera fila es el encabezado de la columna

2. Encabezado complejo

=file( "complex.xls "). xlsimport(;1,5).rename(#1:No,#2:ItemCode,#3:ItemName,

#4:Unidad,#5:Cantidad,#). 6:Precio, #7:Suma)

Los parámetros 1 y 5 indican leer la primera hoja, comenzando desde la fila 5 (también puede especificar la fila final), y luego usar cambiar nombre para modificar el nombre de la columna después leyendo

3. Crosstab

=file("cross.xls").xlsimport@t(;1,2).rename(#1:Type).pivot@r( Type;Area,Amount )

En la función dinámica, los datos de la tabla se agrupan por Tipo para transponer las filas y columnas. La opción @r significa convertir los datos de la columna en datos de la fila. los nuevos nombres de las columnas son "Área" y "Cantidad" respectivamente.

Como se puede ver en el código, esProc SPL es más conciso que Python pandas para analizar archivos de Excel. De hecho, SPL tiene mayores ventajas que pandas en cálculos de procesamiento posteriores. Para obtener más información, consulte el script de procesamiento de datos liviano de escritorio.

Además, esProc también puede leer y calcular fácilmente datos de archivos grandes. Proporciona un mecanismo de cursor, lo que permite a los analistas de datos procesar intuitivamente datos más grandes utilizando una sintaxis similar al procesamiento de pequeñas cantidades de datos. El código del programa es tan simple. como procesar archivos pequeños, como archivos de datos grandes en formatos simples. El código del programa para usar la lectura del cursor es:

=file("big.xlsx").xlsimport@tc()

<. p> En comparación, podemos ver que los códigos utilizados por Python pandas y esProc SPL para analizar archivos de Excel son muy concisos y ambos tienen funciones de cálculo estructuradas ricas que pueden realizar el procesamiento de datos en el trabajo diario. Comparado con los dos, esProc SPL es más conciso y puede manejar fácilmente archivos grandes.