Convertir un IList en un Array
.Net January 28th, 2010
Subrutinas para VBA
Excel, Windows July 10th, 2009
Por más que no sea un gran fan de Microsoft, debo admitir que el Office es un buen producto. A mi me gusta especialmente el Excel por la cantidad de cosas que se pueden hacer con él. Si además, lo utilizamos en conjunto con VBA (el pequeño entorno de desarrollo en Visual Basic que está metido dentro del Office), el número de posibilidades se incrementa exponencialmente. Es cierto que el VB está muy, muy lejos de ser el mejor lenguaje de programación, pero en este caso cumple su cometido (aunque muchas veces extrañe las ventajas de lenguajes más elaborados como C#).
Bueno, regresando al tema de este post, quería colocar acá algunas subrutinas que utilizo cuando programo en VBA. Creo que pueden ser útiles a más de uno, además que me sirven a mi cuando comienzo un nuevo proyecto.
' Adds a new worksheet to the current workbook. ' Name of the sheet should be pass as a parameter. ' If a sheet with the same name already exists, it is deleted prior creation. Sub AddSheet(sheetName As String) RemoveSheet (sheetName) ' Added as last sheet Sheets.Add After:=Sheets(Sheets.count) Sheets(Sheets.count).name = sheetName End Sub ' Deletes a worksheet from the current workbook. Sub RemoveSheet(sheetName As String) Dim alerts As Boolean If SheetExists(sheetName) Then alerts = Application.DisplayAlerts ' Avoid alert on delete Application.DisplayAlerts = False Sheets(sheetName).Delete Application.DisplayAlerts = alerts End If End Sub ' Returns TRUE if there is a worksheet with the given name on the active workbook. Function SheetExists(sheetName As String) As Boolean SheetExists = False On Error GoTo NoSuchSheet If Len(Sheets(sheetName).name) > 0 Then SheetExists = True Exit Function End If NoSuchSheet: End Function
UPDATE: He encontrado que el cambio de nombre de la hoja en AddSheet puede fallar si existen hojas ocultas en el libro. Así que estoy buscando una solución, apenas la tenga la cuelgo.
Tags: C#, MS Office, VB, VBA, Visual Basic, Visual Basic for Applications
Convertir un ArrayList a string[]
.Net November 30th, 2008
Diferencia entre ICollection e IList en C#
.Net October 30th, 2008
Los elementos dentro de un ICollection (para ser más exactos, los elementos dentro de una clase que implemente una interfaz ICollection) no tienen un orden específico. En un momento pueden estar ordenados de una manera, y en otro, sin alguna razón aparente, ordenados de otra forma.
En cambio, los elementos de un IList si tienen un orden establecido y relevante, como un arreglo. Esto permite agregar elementos en una ubicación específica. Además, los elementos van a permanecer en la posición asignada hasta que decidamos moverlos.
Además de estas dos interfaces, existe también IDictionary, que exitiende a ICollection. Este permite almacenar parejas de elementos (clave, valor), similar a como lo hace un diccionario de palabras (cada palabra tiene un significado). Al igual que en el ICollection, estos elementos no tienen un orden específico.
Tags: .Net, C#, ICollection, IDictionary, IList
Obtener el MimeType de un archivo desde C#
.Net October 24th, 2008
No he encontrado una manera directa de hacerlo, pero encontré esta función que busca la extensión del archivo en el registro de windows y si está registrada, obtiene su tipo mime.
1 2 3 4 5 6 7 8 9 | private string getMimeType(string fileName) { string mimeType = "application/unknown"; string ext = System.IO.Path.GetExtension(fileName).ToLower(); Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext); if (regKey != null && regKey.GetValue("Content Type") != null) mimeType = regKey.GetValue("Content Type").ToString(); return mimeType; } |
Aún no la pruebo, pero según loque leí, funciona bien. Los post originales están acá y acá.
About











