The Web Design Group

... Making the Web accessible to all.

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Modify a website published with excel, Build function, which switches between worksheets
Ijakor
post Jul 1 2022, 03:35 AM
Post #1





Group: Members
Posts: 2
Joined: 1-July 22
Member No.: 28,418



Hello,

I am a complete newbie in HTML and have only a shallow understanding of the structure, coming from a python background. Therefore I could be a bit slow understanding the answers, sorry in advance. Basically I want to build a function into a website which i made by using the SaveAs webpage option in a Microsoft Excel workbook. The webpage, as it is, updates automatically if i change a cell in the corresponding microsoft excel workbook and should continue doing that. The function I want to build should switch between the worksheets in chronological order. That means I want to display the first sheet for 5 seconds, then switch to the second sheet and display it for five seconds, then the third and so on. Additionally I want to hide the ribbon in the bottom of the worksheets. Could something like this be done? Excuse me if the question is trivial.

I thank you for your time and would be extremely greatful if someone could try and answer me.

Edit: I just saw that the generated website uses JavaScript as script language. It would be nice if you could tell me if I am in the wrong forum:)

Edit 2: The generated website has the following source code:

CODE

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta name="Excel Workbook Frameset">
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Excel.Sheet>
<meta name=Generator content="Microsoft Excel 15">
<link rel=File-List href="Example%20workbook-Dateien/filelist.xml">
<![if !supportTabStrip]>
<link id="shLink" href="Example%20workbook-Dateien/sheet001.htm">
<link id="shLink" href="Example%20workbook-Dateien/sheet002.htm">
<link id="shLink" href="Example%20workbook-Dateien/sheet003.htm">

<link id="shLink">

<script language="JavaScript">
<!--
var c_lTabs=3;

var c_rgszSh=new Array(c_lTabs);
c_rgszSh[0] = "Tabelle1";
c_rgszSh[1] = "Tabelle2";
c_rgszSh[2] = "Tabelle3";



var c_rgszClr=new Array(8);
c_rgszClr[0]="window";
c_rgszClr[1]="buttonface";
c_rgszClr[2]="windowframe";
c_rgszClr[3]="windowtext";
c_rgszClr[4]="threedlightshadow";
c_rgszClr[5]="threedhighlight";
c_rgszClr[6]="threeddarkshadow";
c_rgszClr[7]="threedshadow";

var g_iShCur;
var g_rglTabX=new Array(c_lTabs);

function fnGetIEVer()
{
var ua=window.navigator.userAgent
var msie=ua.indexOf("MSIE")
if (msie>0 && window.navigator.platform=="Win32")
  return parseInt(ua.substring(msie+5,ua.indexOf(".", msie)));
else
  return 0;
}

function fnBuildFrameset()
{
var szHTML="<frameset rows=\"*,18\" border=0 width=0 frameborder=no framespacing=0>"+
  "<frame src=\""+document.all.item("shLink")[2].href+"\" name=\"frSheet\" noresize>"+
  "<frameset cols=\"54,*\" border=0 width=0 frameborder=no framespacing=0>"+
  "<frame src=\"\" name=\"frScroll\" marginwidth=0 marginheight=0 scrolling=no>"+
  "<frame src=\"\" name=\"frTabs\" marginwidth=0 marginheight=0 scrolling=no>"+
  "</frameset></frameset><plaintext>";

with (document) {
  open("text/html","replace");
  write(szHTML);
  close();
}

fnBuildTabStrip();
}

function fnBuildTabStrip()
{
var szHTML=
  "<html><head><style>.clScroll {font:8pt Courier New;color:"+c_rgszClr[6]+";cursor:default;line-height:10pt;}"+
  ".clScroll2 {font:10pt Arial;color:"+c_rgszClr[6]+";cursor:default;line-height:11pt;}</style></head>"+
  "<body onclick=\"event.returnValue=false;\" ondragstart=\"event.returnValue=false;\" onselectstart=\"event.returnValue=false;\" bgcolor="+c_rgszClr[4]+" topmargin=0 leftmargin=0><table cellpadding=0 cellspacing=0 width=100%>"+
  "<tr><td colspan=6 height=1 bgcolor="+c_rgszClr[2]+"></td></tr>"+
  "<tr><td style=\"font:1pt\">&nbsp;<td>"+
  "<td valign=top id=tdScroll class=\"clScroll\" onclick=\"parent.fnFastScrollTabs(0);\" onmouseover=\"parent.fnMouseOverScroll(0);\" onmouseout=\"parent.fnMouseOutScroll(0);\"><a>«</a></td>"+
  "<td valign=top id=tdScroll class=\"clScroll2\" onclick=\"parent.fnScrollTabs(0);\" ondblclick=\"parent.fnScrollTabs(0);\" onmouseover=\"parent.fnMouseOverScroll(1);\" onmouseout=\"parent.fnMouseOutScroll(1);\"><a>&lt</a></td>"+
  "<td valign=top id=tdScroll class=\"clScroll2\" onclick=\"parent.fnScrollTabs(1);\" ondblclick=\"parent.fnScrollTabs(1);\" onmouseover=\"parent.fnMouseOverScroll(2);\" onmouseout=\"parent.fnMouseOutScroll(2);\"><a>&gt</a></td>"+
  "<td valign=top id=tdScroll class=\"clScroll\" onclick=\"parent.fnFastScrollTabs(1);\" onmouseover=\"parent.fnMouseOverScroll(3);\" onmouseout=\"parent.fnMouseOutScroll(3);\"><a>»</a></td>"+
  "<td style=\"font:1pt\">&nbsp;<td></tr></table></body></html>";

with (frames['frScroll'].document) {
  open("text/html","replace");
  write(szHTML);
  close();
}

szHTML =
  "<html><head>"+
  "<style>A:link,A:visited,A:active {text-decoration:none;"+"color:"+c_rgszClr[3]+";}"+
  ".clTab {cursor:hand;background:"+c_rgszClr[1]+";font:9pt Arial;padding-left:3px;padding-right:3px;text-align:center;}"+
  ".clBorder {background:"+c_rgszClr[2]+";font:1pt;}"+
  "</style></head><body onload=\"parent.fnInit();\" onselectstart=\"event.returnValue=false;\" ondragstart=\"event.returnValue=false;\" bgcolor="+c_rgszClr[4]+
  " topmargin=0 leftmargin=0><table id=tbTabs cellpadding=0 cellspacing=0>";

var iCellCount=(c_lTabs+1)*2;

var i;
for (i=0;i<iCellCount;i+=2)
  szHTML+="<col width=1><col>";

var iRow;
for (iRow=0;iRow<6;iRow++) {

  szHTML+="<tr>";

  if (iRow==5)
   szHTML+="<td colspan="+iCellCount+"></td>";
  else {
   if (iRow==0) {
    for(i=0;i<iCellCount;i++)
     szHTML+="<td height=1 class=\"clBorder\"></td>";
   } else if (iRow==1) {
    for(i=0;i<c_lTabs;i++) {
     szHTML+="<td height=1 nowrap class=\"clBorder\">&nbsp;</td>";
     szHTML+=
      "<td id=tdTab height=1 nowrap class=\"clTab\" onmouseover=\"parent.fnMouseOverTab("+i+");\" onmouseout=\"parent.fnMouseOutTab("+i+");\">"+
      "<a href=\""+document.all.item("shLink")[i].href+"\" target=\"frSheet\" id=aTab>&nbsp;"+c_rgszSh[i]+"&nbsp;</a></td>";
    }
    szHTML+="<td id=tdTab height=1 nowrap class=\"clBorder\"><a id=aTab>&nbsp;</a></td><td width=100%></td>";
   } else if (iRow==2) {
    for (i=0;i<c_lTabs;i++)
     szHTML+="<td height=1></td><td height=1 class=\"clBorder\"></td>";
    szHTML+="<td height=1></td><td height=1></td>";
   } else if (iRow==3) {
    for (i=0;i<iCellCount;i++)
     szHTML+="<td height=1></td>";
   } else if (iRow==4) {
    for (i=0;i<c_lTabs;i++)
     szHTML+="<td height=1 width=1></td><td height=1></td>";
    szHTML+="<td height=1 width=1></td><td></td>";
   }
  }
  szHTML+="</tr>";
}

szHTML+="</table></body></html>";
with (frames['frTabs'].document) {
  open("text/html","replace");
  charset=document.charset;
  write(szHTML);
  close();
}
}

function fnInit()
{
g_rglTabX[0]=0;
var i;
for (i=1;i<=c_lTabs;i++)
  with (frames['frTabs'].document.all.tbTabs.rows[1].cells[fnTabToCol(i-1)])
   g_rglTabX[i]=offsetLeft+offsetWidth-6;
}

function fnTabToCol(iTab)
{
return 2*iTab+1;
}

function fnNextTab(fDir)
{
var iNextTab=-1;
var i;

with (frames['frTabs'].document.body) {
  if (fDir==0) {
   if (scrollLeft>0) {
    for (i=0;i<c_lTabs&&g_rglTabX[i]<scrollLeft;i++);
    if (i<c_lTabs)
     iNextTab=i-1;
   }
  } else {
   if (g_rglTabX[c_lTabs]+6>offsetWidth+scrollLeft) {
    for (i=0;i<c_lTabs&&g_rglTabX[i]<=scrollLeft;i++);
    if (i<c_lTabs)
     iNextTab=i;
   }
  }
}
return iNextTab;
}

function fnScrollTabs(fDir)
{
var iNextTab=fnNextTab(fDir);

if (iNextTab>=0) {
  frames['frTabs'].scroll(g_rglTabX[iNextTab],0);
  return true;
} else
  return false;
}

function fnFastScrollTabs(fDir)
{
if (c_lTabs>16)
  frames['frTabs'].scroll(g_rglTabX[fDir?c_lTabs-1:0],0);
else
  if (fnScrollTabs(fDir)>0) window.setTimeout("fnFastScrollTabs("+fDir+");",5);
}

function fnSetTabProps(iTab,fActive)
{
var iCol=fnTabToCol(iTab);
var i;

if (iTab>=0) {
  with (frames['frTabs'].document.all) {
   with (tbTabs) {
    for (i=0;i<=4;i++) {
     with (rows[i]) {
      if (i==0)
       cells[iCol].style.background=c_rgszClr[fActive?0:2];
      else if (i>0 && i<4) {
       if (fActive) {
        cells[iCol-1].style.background=c_rgszClr[2];
        cells[iCol].style.background=c_rgszClr[0];
        cells[iCol+1].style.background=c_rgszClr[2];
       } else {
        if (i==1) {
         cells[iCol-1].style.background=c_rgszClr[2];
         cells[iCol].style.background=c_rgszClr[1];
         cells[iCol+1].style.background=c_rgszClr[2];
        } else {
         cells[iCol-1].style.background=c_rgszClr[4];
         cells[iCol].style.background=c_rgszClr[(i==2)?2:4];
         cells[iCol+1].style.background=c_rgszClr[4];
        }
       }
      } else
       cells[iCol].style.background=c_rgszClr[fActive?2:4];
     }
    }
   }
   with (aTab[iTab].style) {
    cursor=(fActive?"default":"hand");
    color=c_rgszClr[3];
   }
  }
}
}

function fnMouseOverScroll(iCtl)
{
frames['frScroll'].document.all.tdScroll[iCtl].style.color=c_rgszClr[7];
}

function fnMouseOutScroll(iCtl)
{
frames['frScroll'].document.all.tdScroll[iCtl].style.color=c_rgszClr[6];
}

function fnMouseOverTab(iTab)
{
if (iTab!=g_iShCur) {
  var iCol=fnTabToCol(iTab);
  with (frames['frTabs'].document.all) {
   tdTab[iTab].style.background=c_rgszClr[5];
  }
}
}

function fnMouseOutTab(iTab)
{
if (iTab>=0) {
  var elFrom=frames['frTabs'].event.srcElement;
  var elTo=frames['frTabs'].event.toElement;

  if ((!elTo) ||
   (elFrom.tagName==elTo.tagName) ||
   (elTo.tagName=="A" && elTo.parentElement!=elFrom) ||
   (elFrom.tagName=="A" && elFrom.parentElement!=elTo)) {

   if (iTab!=g_iShCur) {
    with (frames['frTabs'].document.all) {
     tdTab[iTab].style.background=c_rgszClr[1];
    }
   }
  }
}
}

function fnSetActiveSheet(iSh)
{
if (iSh!=g_iShCur) {
  fnSetTabProps(g_iShCur,false);
  fnSetTabProps(iSh,true);
  g_iShCur=iSh;
}
}

window.g_iIEVer=fnGetIEVer();
if (window.g_iIEVer>=4)
  fnBuildFrameset();
//-->
</script>
<![endif]><!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name>Tabelle1</x:Name>
    <x:WorksheetSource HRef="Example%20workbook-Dateien/sheet001.htm"/>
   </x:ExcelWorksheet>
   <x:ExcelWorksheet>
    <x:Name>Tabelle2</x:Name>
    <x:WorksheetSource HRef="Example%20workbook-Dateien/sheet002.htm"/>
   </x:ExcelWorksheet>
   <x:ExcelWorksheet>
    <x:Name>Tabelle3</x:Name>
    <x:WorksheetSource HRef="Example%20workbook-Dateien/sheet003.htm"/>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
  <x:Stylesheet HRef="Example%20workbook-Dateien/stylesheet.css"/>
  <x:WindowHeight>3930</x:WindowHeight>
  <x:WindowWidth>14130</x:WindowWidth>
  <x:WindowTopX>0</x:WindowTopX>
  <x:WindowTopY>0</x:WindowTopY>
  <x:ActiveSheet>2</x:ActiveSheet>
  <x:ProtectStructure>False</x:ProtectStructure>
  <x:ProtectWindows>False</x:ProtectWindows>
</x:ExcelWorkbook>
</xml><![endif]-->
</head>

<frameset rows="*,39" border=0 width=0 frameborder=no framespacing=0>
<frame src="Example%20workbook-Dateien/sheet003.htm" name="frSheet">
<frame src="Example%20workbook-Dateien/tabstrip.htm" name="frTabs" marginwidth=0 marginheight=0>
<noframes>
  <body>
   <p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
  </body>
</noframes>
</frameset>
</html>


This post has been edited by Ijakor: Jul 1 2022, 04:03 AM
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Christian J
post Jul 1 2022, 05:17 PM
Post #2


.
********

Group: WDG Moderators
Posts: 9,630
Joined: 10-August 06
Member No.: 7



Hello!

QUOTE(Ijakor @ Jul 1 2022, 10:35 AM) *

Basically I want to build a function into a website which i made by using the SaveAs webpage option in a Microsoft Excel workbook.

Is the website meant to be accessible online? I'm not really familiar with Excel's features, but I assume saving an Excel file as a webpage will just create an HTML file on your local computer? unsure.gif To make it accessible online, it needs to be uploaded to a web server.

QUOTE
The webpage, as it is, updates automatically if i change a cell in the corresponding microsoft excel workbook and should continue doing that.

Once saved as an HTML file, I can't see how it could change automatically, except by saving new file versions.

QUOTE
The function I want to build should switch between the worksheets in chronological order. That means I want to display the first sheet for 5 seconds, then switch to the second sheet and display it for five seconds, then the third and so on.

You might upload all the HTML versions to a web server, then perhaps use something like javascript redirects to keep loading newer version pages.

QUOTE
Edit 2: The generated website has the following source code:

MS Office products does generate horrible HTML, which may complicate things further.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Ijakor
post Jul 4 2022, 07:20 AM
Post #3





Group: Members
Posts: 2
Joined: 1-July 22
Member No.: 28,418



Hello Christian

Thank you for your answer!

QUOTE
Is the website meant to be accessible online? I'm not really familiar with Excel's features, but I assume saving an Excel file as a webpage will just create an HTML file on your local computer? unsure.gif To make it accessible online, it needs to be uploaded to a web server.

I honestly do not know if an upload is nessecary. If so, it would be a private web server. To put it into perspective: We built a big excel workbook with different worksheets and want to display that on the shopfloor. The software which runs on the monitors supports website, video and picture data format (mp4, htm, png/jpg).
Now I search for a way to make that happen. Excel itself manages to create a well formatted .htm file, which can be opened by a browser - Is that a local HTML-file?


QUOTE
Once saved as an HTML file, I can't see how it could change automatically, except by saving new file versions.

That is something I did not consider. Noobie mistake unsure.gif I guess it would be possible to make "individual webpages" for the different sheets using vba. I would have to ask the guy in charge of the monitors if the program is able to switch between different websites. I do not know that.


QUOTE
MS Office products does generate horrible HTML, which may complicate things further.

I figured as much biggrin.gif

Perhaps it would be much easier to make a powerpoint and automatically save that as an .mp4 with RPA. But I would have to look into that. Could you think of a different approach?

This post has been edited by Ijakor: Jul 4 2022, 07:24 AM
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post
Christian J
post Jul 4 2022, 09:13 AM
Post #4


.
********

Group: WDG Moderators
Posts: 9,630
Joined: 10-August 06
Member No.: 7



QUOTE(Ijakor @ Jul 4 2022, 02:20 PM) *

Excel itself manages to create a well formatted .htm file, which can be opened by a browser - Is that a local HTML-file?

Yes, both file extensions .htm and .html are used for HTML files by default (Windows may initially display warnings about running HTML files locally though). But since the actual HTML code from MS Office is horrible, test carefully that the browser you use can handle it properly.

QUOTE
QUOTE
Once saved as an HTML file, I can't see how it could change automatically, except by saving new file versions.

That is something I did not consider. Noobie mistake unsure.gif I guess it would be possible to make "individual webpages" for the different sheets using vba. I would have to ask the guy in charge of the monitors if the program is able to switch between different websites. I do not know that.

If the shopfloor monitors use touch screens (or a mouse) maybe you could use ordinary links?

If not, perhaps you have no choice but to let the pages loop automatically. To do so, you could add a delayed META redirect: https://www.howtogeek.com/devops/how-to-set...with-just-html/ --of course automatic redirects could be annoying for users if they want to proceed slower or faster, or if there are too many pages to show before the cycle returns to the start.

QUOTE
Perhaps it would be much easier to make a powerpoint and automatically save that as an .mp4 with RPA. But I would have to look into that. Could you think of a different approach?

No idea, sorry.
User is offlinePM
Go to the top of the page
Toggle Multi-post QuotingQuote Post

Reply to this topicStart new topic
3 User(s) are reading this topic (3 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 28th March 2024 - 01:15 PM