Hola,
 
 Me encuentro desarrollando uan aplicacion que crea dinamicamente PivotTables 
de Excel.
 

El problema puntual es : las customlist funcionan correctamente, o sea
se crean, cuando se utilizan ordenan correctamente la columna
especificada, pero cuando todo termina y se abre el archivo excel, las
custo list no aparecen en la lista cuando se va a la opcion:
 
 Tools -> Option... ->  Custom Lists (solapa)
 
 Basicamente el codigo que utilizo es el siguiente:
 

using Office = Microsoft.Office.Interop.Excel;

private int AddCustomLists(Office.Workbook workbook)
{
    List<string> items = new List<string>();

     items.Add("item1");
     items.Add("item2");
     items.Add("item3");

     int listNumber = workbook.Application.GetCustomListNum(items.ToArray());

     if (listNumber == 0)
     {
       workbook.Application.AddCustomList(items.ToArray(), Missing.Value);
     }

    return workbook.Application.GetCustomListNum(items.ToArray()) + 1;
}


 
 El mismo como veran esta dentro de un metodo, que toma el workbook con el que 
trabajo, y le agrega la lista.
 Esta en realidad es llenada con un query a una db, pero para simplificar este 
ejemplo, aqui le psue solo tres items a mano.
 
 He probado al final cuando sale del metodo, hacer un :
 
 workbook.Application.Save(Type.Missing);
 
 o
 
 workbook.Save();
 
 
 Pero no hay caso.

Las customlist las puedo utilizar cuando las aplico en el orden
mediante programacion pero una vez que termina y cierro el Excel, estas
se pierden.
 
 Para utilizarlas utilizo este codigo:
 

pivotTable.PivotSelect(string.Format("'{0}'[All]", pivoteFieldName), 
Office.XlPTSelectionMode.xlLabelOnly, true);
Office.Range range = sheet.Application.Selection as Office.Range;

range.Sort(Type.Missing,
          Office.XlSortOrder.xlAscending, // Order1
           Type.Missing,
           Office.XlSortType.xlSortLabels, //Type
            Office.XlSortOrder.xlAscending,
            Type.Missing,
           Office.XlSortOrder.xlAscending,
            Office.XlYesNoGuess.xlGuess,
            <aqui reemplazo por el numero devuelto en el emtodo anterior>, 
//OrderCustom
            Type.Missing,
             Office.XlSortOrientation.xlSortColumns, //Orientation
             Office.XlSortMethod.xlStroke,
            Office.XlSortDataOption.xlSortNormal,
             Office.XlSortDataOption.xlSortNormal,
             Office.XlSortDataOption.xlSortNormal);



 Y este codigo funciona perfecto.
 
 Saben porque puede ser que el CustomList no quede grabado junto al workbook ?
 
 
 Estoy desarrollando con Visual Studio 2008, C#, y tengo una referencia a 
Microsoft.Office.Interop.Excel v11
 
 Gracias
 Saludos


      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

Responder a