[ASP] Excel sheet opbouwen in ASP

Pagina: 1
Acties:

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Goede morgen,

Ik ben nu al 2 dagen bezig met het bouwen van een Excelsheet in ASP.
Ik doe die op een best omslachtige manier.
Niet met HTML de tabel opbouwen en dan in Excel dumpen, maar rechtstreeks in het Excel.Application object cellen opmaken en de sheet z'n vorm geven.
Nu is dit allemaal niet al te moeilijk, maar wel leuk om te doen.
Het probleem wat ik heb zit in grappen als PasteSpecial en Copy.
Wanneer je in VBScript een macro maakt die een copy/paste actie moet maken, dan kan dat er zo uitzien:
code:
1
2
thisWorkbook.Sheets("default layout").Select
thisWorkbook.Sheets("default layout").Copy After:=Sheets(4)
of
code:
1
2
3
4
5
    Range("A1:G22").Select
Selection.Copy
Sheets("Sheet1").Select
Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Nu komt mijn vraag. :D
Het lukt me niet om dit te doen in ASP.
Dat is natuurlijk helemaal logisch, want wanneer je dat zo inklopt, zit je natuurlijk te kijken met een hoop tekst die je ASP pagina als variabelen wil zien.
Weet iemand hoe je deze codes omzet naar code die je ASP pagina begrijpt??
En, kan die persoon dan meteen vertellen waar hij/zij die info vandaan heeft, want het lijkt wel alsof er op het complete internet niets te vinden is over deze conversie, terwijl het mij niet lijkt dat ik de enige ben die hier mee bezig is.
Over standaard opmaak van Excel sheets in je ASP pagina krijg ik zat gevonden (lang leve google), maar wat meer advanced grappen schijnen niet gevonden te mogen worden. :?

Weet iemand ook meteen of er ergens een refentie is waar Excel constanten zoals
HorizontalAlignment = xlCenter (3 in ASP)
font.color = xlBlack (geen idee welke code ik hiervoor moet nemen)
lineStyle = xlContinues (7 in ASP)
staan vermeldt??
Wanneer je Excel opend en gaat tellen hoeveel manieren van HorizontalAlignment er zijn, dan kom je er wel bij uit dat xlCenter de 3de is, maar er moet toch een lijst zijn??

Alvast hartelijk bedankt voor het beantwoorden van deze 2 vragen.

| Life is a game (and games are fun) | homepage |


  • Scharnout
  • Registratie: November 2000
  • Laatst online: 23-08 12:39

Scharnout

Meuk

edit:

ik ben een eikel :) laat maar :)

[ Voor 88% gewijzigd door Scharnout op 29-11-2002 08:12 ]

And Bob's your uncle ...


Verwijderd

Binnen ASP kan je met Server.CreateObject() een COM object aanmaken. Zo kan je ook Excel opstarten en een WorkBook met Sheets aanmaken. Dit zijn ook allemaal COM objecten. Er bestaat een Object Model van Excel, waarin staat welk object welke andere objecten bevat (zoals een WorkBook object 0, 1 of meer Sheet objecten kan bevatten). Je kan een dergelijk Object Model ook terugvinden van bijvoorbeeld ADO (Met Connection, RecordSet, Record en Field objecten bijvoorbeeld).

Kortom, wat jij moet doen is proberen een object model van Excel te vinden, en dan volgens de juiste properties en methods de door jou gezochte informatie vinden. Zo'n Object Model is vast op MSDN ergens te vinden, dus zoek, en gij zult vinden.

Succes :)

  • Kahlan
  • Registratie: Juli 2000
  • Laatst online: 24-06 21:19
In de VBEditor (F11) kun je de object browser opstarten. Hier staan onder library excel alle classes van die library genoemd. Klik op zo'n class om de members te laten zien. Klik op zo'n member en onderin verschijnt info over deze member. Zoals hieronder:

Const xlPasteFormats = -4122 (&HFFFFEFE6)
Member of Excel.XlPasteType

Dan weet jij welke const je aan je ASP moet toevoegen.

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Voor Kahlan2 en MrX:
Klopt, die waarden had ik ook al gevonden in de VB editor.
Dus, het enige wat ik hoef te doen is deze variabele getallen (-4122 enzo) mee te geven aan de functie??
Da's mooi! :)

Dan heb ik nog 1 vraagje.
Ik wil mijn document zo instellen dat alle wijzigingen worden geaccepteerd, maar het object pikt dit niet.
ASP:
1
2
set oExcelApp = server.createobject("Excel.Application")
oExcelApp.Worksheets.AcceptAllChanges

Hierop gaat ie fout.
Ik krijg er geen oplossing voor gevonden.

| Life is a game (and games are fun) | homepage |


Verwijderd

Wat is de foutmelding?

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Tja, de standaard melding waar je niets mee kan.
ASP:
1
Object doesn't support this property or method: 'Worksheets.AcceptAllChanges'

| Life is a game (and games are fun) | homepage |


Verwijderd

Da's een redelijk duidelijke foutmelding, lijkt mij. Probeer eens wat haakjes achter de aanroep te zetten, dus:
code:
1
oExcelApp.Worksheets.AcceptAllChanges()

Dat wil nog weleens helpen met het herkennen van een methode.

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Kijk, en dat is het probleem.
Dan doet ie het ook niet, en dat terwijl Excel aangeeft dat Sub AcceptAllChanges([When], [Who], [Where])
Member of Excel.Workbook
zo gedefinieerd is, dus als onderdeel van het workbook.
Heb ik oExcelApp.Workbook.AcceptAllChanges aangeroepen, dan komt ie met dezelfde foutmelding.

En dat terwijl When, Who en Where toch echt optioneel zijn. :(

edit:

Nu moet ik er wel bij zeggen dat de AcceptAllChanges functie ook niet werkt wanneer je deze aanroept vanuit een maco in Excel zelf :? :?

[ Voor 17% gewijzigd door akakiwi op 29-11-2002 11:17 ]

| Life is a game (and games are fun) | homepage |


Verwijderd

Heel vreemd. Eerlijk gezegd houdt het dan ook voor mij op, sorry. Wellicht dat MS zelf er iets over kan vertellen.

Succes :)
Pagina: 1