2009-03-11 11 views
2

J'ai besoin d'importer des données à partir d'un fichier Excel, mais un champ est une cellule fusionnée.ASP: Comment importer des données à partir d'une cellule fusionnée dans Excel?

Comment puis-je déterminer si un champ est fusionné ou non et combien de cellules sont fusionnées dans ce champ?

Mon code est comme ceci:

Dim Conn, DBPath ,Rs 

Set Conn = Server.CreateObject("ADODB.Connection") 

DBPath = "Driver={Microsoft Excel Driver (*.xls)}; DBQ=" & Server.MapPath("program.xls") 

Conn.Open Driver & DBPath 

Sql="Select F1, F2 From [Sheet1$]" 

Set ODBCrs=Conn.Execute(Sql) 

while Not ODBCrs.EOF 

    conn2.execute("insert into....") 

    ODBCrs.MoveNext 

wend 

ODBCrs.Close 

Conn.Close 

Les données sont comme ceci:

Catégorie A

Nom 1 desc 1

Nom 2 desc 2

Catégorie B

nom 3 desc 3

nom 4 desc 4

Merci beaucoup !!

+0

Marge == Champ de fusion? –

+0

Je ne comprends pas votre sens. – March

+0

Chris Hynes pose une question sur le mot que vous avez utilisé: "marge". Il devrait en fait être "fusionner", comme dans "les cellules ont été fusionnées". J'ai fait le changement dans votre question. –

Répondre

3

La fusion de cellules est juste un formatage. Il n'apparaîtra pas dans les données. Si vous accédez au fichier Excel via ADO et le pilote Excel, vous regardez simplement les données, pas le formatage.

Si vous devez réellement faire cela, vous devrez peut-être créer un objet Excel.Application et utiliser le modèle d'objet Excel pour inspecter les cellules et leur formatage. Cela fonctionne bien sur le bureau mais ne peut pas vraiment être fait de façon fiable sur un serveur, donc, par exemple, si vous essayez de le faire dans une application web, vous pouvez avoir des problèmes.

+0

+1 - Joel, pourriez-vous utiliser vos super-pouvoirs d'édition et corriger "Marge" :) –

+0

J'aime Marge comme elle est. Je ne voudrais pas qu'elle change un peu. –