2009-05-26 12 views
7

Me gustaría abrir una OleDbConnection a un archivo de Excel que está en la memoria como FileStream. ¿Alguien sabe si esto es posible y cómo lograrlo?En memoria OleDbConnection a archivo de Excel

Gran imagen Me gustaría pasar los bytes del archivo en un .NET CLR Stored Procedure y extraer los datos. Tal vez hay una mejor manera de hacer esto que no he considerado.

Gracias de antemano.

+0

Es que desea pasar datos tabulares al procedimiento almacenado? – shahkalpesh

+0

Idealmente, simplemente pasaría el archivo de Excel al .NET SP como un Blob o byte []. Dentro del SP, lo abriré y procesaré los datos. – javacavaj

Respuesta

0

La solución VSTO que ofrece JP definitivamente es viable. Sin embargo, si realmente quiere usar OleDb y algo de SQL, eche un vistazo a this artcile: es un artículo de la base de conocimiento de MS que describe cómo importar datos desde Excel a SQLSever usando OleDb.

+0

Esteban, excelente artículo. Sin embargo, de todos los métodos mencionados parece depender del archivo de Excel que se conserva en el disco. ¿Alguna idea de cómo se podrían utilizar estas técnicas para adjuntarlas a un archivo de Excel en la memoria o una columna de Blob? Gracias. – javacavaj

+0

@Steve: No lo sé, pero no lo creo. –

+0

@EstebanAraya Hago una pregunta similar sobre pero sobre el Acceso aquí: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream por favor verifíquelo. – Saeid

0

Puede extraer los datos usando VSTO. Tiene un object model for Excel. Luego pasa lo que quieras al proceso. Creo que sería mejor que intentar que el CLR almacene el descifrador de procesos de Excel.

+0

Hago una pregunta similar sobre pero sobre el acceso aquí: http://stackoverflow.com/questions/14475968/read-access-file-accdb-from-stream por favor verifíquelo. – Saeid

1

Puede utilizar SpreadsheetGear para abrir un archivo de una matriz de bytes en la memoria o de cualquier corriente con SpreadsheetGear.Factory.GetWorkbookSet(). Workbooks.OpenFromMemory (byte [])/OpenFromStream (System.IO.Stream).

responsabilidad: Soy dueño de SpreadsheetGear LLC

Cuestiones relacionadas