Avatar billede uhrbrand Nybegynder
17. maj 2006 - 23:54 Der er 1 løsning

Åbning af Excel vha. script på html-side (og overførsel af data)

Hej Eksperter.

Hvor meget er muligt at gøre med et Excel-dokument man åbner fra en browser vha. clientside-scripting?

Jeg vil gerne have en side man ser i en browser der viser nogle tal.
Det skal være muligt at klikke på en knap der så åbner et Excel-dokument og fylder tallene ind i det.
Jeg gætter på det kan lade sig gøre ved at have en HTML side med noget SCRIPT der sørger for at åbne Excel-dokumentet.

Her er et eksempel jeg har fundet der viser at det er muligt at åbne et Excel-dokument og simpelt fylde tal i det (jeg har ikke testet det endnu):

---------------
var ExcelSheet;
ExcelApp = new ActiveXObject("Excel.Application");
ExcelSheet = new ActiveXObject("Excel.Sheet");

// Make Excel visible through the Application object.
ExcelSheet.Application.Visible = true;
// Place some text in the first cell of the sheet.
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1";
// Save the sheet.
ExcelSheet.SaveAs("C:\\Temp\\TEST.XLS");
// Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit();
---------------

SPØRGSMÅLET:

Det jeg godt kunne tænke mig er:
I stedet for at der åbnes et tomt dokument, skal der åbnes et dokument der er lavet i forvejen hvor der skal kaldes en funktion med tallene som parameter der så laver en graf.
Kan det lade sig gøre?

På forhånd mange tak!
Avatar billede uhrbrand Nybegynder
18. maj 2006 - 15:32 #1
Hej igen.

Jeg har løst det nu ved at åbne et blankt Excel-dokument, fylde data i det, oprette en graf ud fra dataen og tilpasse grafen. Alt sammen sker i et script på en html-side.

<html>
<head>
<script>
function test(){

//inspiration hentet her:
//http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_xl2003_ta/html/odc_XL_manipulatecharts.asp

    var ExcelSheet;
    ExcelApp = new ActiveXObject("Excel.Application");
    ExcelSheet = new ActiveXObject("Excel.Sheet");
   
    // Make Excel visible through the Application object.
    ExcelSheet.Application.Visible = true;


ExcelSheet.ActiveSheet.Cells(1,1).Value = "Tools Sold"
ExcelSheet.ActiveSheet.Cells(1,2).Value = "Oct"
ExcelSheet.ActiveSheet.Cells(1,3).Value = "Nov"
ExcelSheet.ActiveSheet.Cells(1,4).Value = "Dec"

ExcelSheet.ActiveSheet.Cells(2,1).Value = "South"
ExcelSheet.ActiveSheet.Cells(2,2).Value = "7000"
ExcelSheet.ActiveSheet.Cells(2,3).Value = "6610"
ExcelSheet.ActiveSheet.Cells(2,4).Value = "4827"

ExcelSheet.ActiveSheet.Cells(3,1).Value = "North"
ExcelSheet.ActiveSheet.Cells(3,2).Value = "1155"
ExcelSheet.ActiveSheet.Cells(3,3).Value = "2914"
ExcelSheet.ActiveSheet.Cells(3,4).Value = "3790"

ExcelSheet.ActiveSheet.Cells(4,1).Value = "East"
ExcelSheet.ActiveSheet.Cells(4,2).Value = "757"
ExcelSheet.ActiveSheet.Cells(4,3).Value = "659"
ExcelSheet.ActiveSheet.Cells(4,4).Value = "7072"

ExcelSheet.ActiveSheet.Cells(5,1).Value = "West"
ExcelSheet.ActiveSheet.Cells(5,2).Value = "5012"
ExcelSheet.ActiveSheet.Cells(5,3).Value = "3880"
ExcelSheet.ActiveSheet.Cells(5,4).Value = "4752"

//konstanter
xlValue=2
xlPrimary=1
xlCategory=1
xlLocationAsNewSheet=1
xlColumnClustered=51
xlRows=1

ExcelSheet.Charts.Add
ExcelSheet.ActiveChart.ChartType = xlColumnClustered
ExcelSheet.ActiveChart.SetSourceData(ExcelSheet.Sheets("Sheet1").Range("A1:D5"),xlRows)
ExcelSheet.ActiveChart.Location(xlLocationAsNewSheet,"Tools Sold")
ExcelSheet.ActiveChart.HasTitle = true
ExcelSheet.ActiveChart.ChartTitle.Characters.Text = "Tools Sales for Qtr 1"
ExcelSheet.ActiveChart.Axes(xlCategory, xlPrimary).HasTitle = true
ExcelSheet.ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Month"
ExcelSheet.ActiveChart.Axes(xlValue, xlPrimary).HasTitle = true
ExcelSheet.ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Sales"
}
</script>
</head>
<body>

<a href="java script:test()">klik her</a>

</body>
</html>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester