• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Hintergrundfarbe in einer von Excel erstellten HTML Datei in einem Frame

Status
Für weitere Antworten geschlossen.

Double-H

Neues Mitglied
Hallo
Ich habe folgendes Problem:
Ich speicher eine Excel Tabelle nachdem die Berechnungen und Sortierungen vorgenommen wurden als HTML-Datei ab, d.h. diese wird komplett neu erstellt.
Diese Datei wird in eine Frame geladen. Bis hier hin alles schön und gut und funktioniert auch einwandfrei.

Allerdings möchte ich eine Hintergrundfarbe habe. Also dachte ich mir, daß ich einfach den Hintergrund der Excel-Tabelle farblich gestalte. In dem Bereich in dem die Tabelle liegt funktioniert dies auch wunderbar, aber eben nur die Bereiche in denen auch Zellen der Tabelle im Frame liegen.
Außerhalb dieses Bereichs ist mein Hintergrund weiß, also der die voreingestellte Hintergrundfarbe des Browers.
Gibt es eine Möglichkeit, daß ich entweder dem Frame eine Hintergrundfarbe zu ordnen kann oder daß ich in der Excel-Datei schon sagen kann, speicher mir diese Tabelle als HTML-Datei mit der und der Hintergrundfarbe oder, daß ich eine HTML-Seite aufrufe, die sofort wieder die Tabelle aufruft und in der ich die Hintergrundfarbe bestimmen kann?
Wie mit der letzten Möglichkeit habe ich es bei einem Bild gemacht. Ich lade eine HTML-Seite in das entsprechende Frame und in der HTML-Seite wird nur das Bild geladen mit <IMG SCR...> und die Hintergrundfarbe gesetzt indem ich in BODY BGCOLOR eintrage.

Ihr werdet jetzt sagen, lass dir doch einfach die Seite von Excel generieren und änder dann die Hintergrundfarbe per Hand. Dann funktioniert es nämlich, wenn ich dann in BODY eine Hintergrundfarbe mit BGCOLOR bestimme, aber die Excel Tabelle wird jede Woche geändert und damit auch neu generiert und es ist auch nicht nur eine Tabelle sondern es sind 6 Tabellen und ich möchte mir nicht immer die Mühe machen und das wieder eintragen.

Weiß jemand eine Möglichkeit, wie ich dieses Problemchen lösen kann?

Schon vielen Dank im vorraus.

Gruß
Heiko
 
Ich hab mal probiert das ganze nachzuvollziehen. Vorab muß ich erwähnen, das ich OpenOffice benutze.

Ich hab also ein Tabellendokument erstellt und in eine Zelle Text geschrieben und dieser eine Hintergrundfarbe verpasst. das ganze hab ich dann als .html datei gespeichert.
Erstellt wird dann automatisch eine tabelle. Die tabellenzelle hat die entsprechend zugewiesene hintergrundfarbe:
Code:
<TD WIDTH=86 HEIGHT=17 ALIGN=LEFT [B]BGCOLOR="#C0C0C0"[/B]>Test</TD>

Du könntest mit PHP und RegEx die Hintergrundfarbe auslesen und diese an <body>...</body> übergeben.
 
Das Problem ist, daß nur die Zellen die man mit einer Farbe hinterlegt auch auf der HTML Seite hinterlegt sind und nicht die ganze Tabelle die in das Frame geladen wird.
Ich bestimme die Hintergrundfarbe inzwischen über ein "Stylesheet".
Gut wäre es also wenn ich etwas in den <HEAD> Bereich schreiben könnte beim speichern der Excel Tabelle als HTML-Datei.
 
kannst du mal nur den code aus der exportierten exeltabelle posten?

wieso wird nicht die komplette tabelle geladen?
 
Der Code ist sehr lang.
Die Excel-Tabelle füllt nicht das komplette Frame aus. Ist ja auch vollkommen in Ordnung. Je nachdem mit welcher Auflösung man sich die Homepage anschaut kann das Frame ja größer oder kleine sein.
Mal angenommen (ist ein reines Beispiel zum Verständnis, die Zahlen stimmen nicht) das Frame ist 120 Pixel breit und die Excel-Tabelle 80 Pixel breit, dann ist der Bereich der Tabelle farbig hinterlegt, aber die restlichen 20 Pixel auf jeder Seite sind weiß, also in der eingestellten Hintergrundfarbe des Browers.
Wenn ich in die HTML-Datei nach dem erzeugen nachträglich BGCOLOR="??????" einfüge wird der komplette Frame in dem ja auch die komplette TABLE drin ist farbig hinterlegt, aber mit der reinen Excel-Datei nur die Zellen die auch zu der Excel-Tabelle gehören. Ich post mal nen kleinen Auszug aus der erzeugten HTML-Seite von Excel. Der Anfang vom BODY Bereich dürfte interessant sein oder? Außerdem vor weg eine Klassendefinition...

HTML:
.xl2618038
    {padding-top:1px;
    padding-right:1px;
    padding-left:1px;
    mso-ignore:padding;
    color:windowtext;
    font-size:10.0pt;
    font-weight:400;
    font-style:normal;
    text-decoration:none;
    font-family:"Times New Roman", serif;
    mso-font-charset:0;
    mso-number-format:"\@";
    text-align:center;
    vertical-align:bottom;
    background:#FFB000;
    mso-pattern:auto none;
    white-space:nowrap;}

<body>
<!--[if !excel]>&nbsp;&nbsp;<![endif]-->
<!--Die folgenden Informationen wurden durch Microsoft Excels
Web-Formular-Assistent erstellt.-->
<!--Falls das gleiche Element mit Excel veröffentlicht wird, werden alle
Informationen zwischen den DIV-Etiketten ersetzt.-->
<!----------------------------->
<!--START OF OUTPUT FROM EXCEL PUBLISH AS WEB PAGE WIZARD -->
<!----------------------------->

<div id="Saison 2_07 HTML BZ-A-B_18038" align=center x:publishsource="Excel">

<table x:str border=0 cellpadding=0 cellspacing=0 width=679 class=xl2618038
 style='border-collapse:collapse;table-layout:fixed;width:512pt'>
 <col class=xl2418038 width=4 style='mso-width-source:userset;mso-width-alt:
 146;width:3pt'>
 <col class=xl2618038 width=55 style='mso-width-source:userset;mso-width-alt:
 2011;width:41pt'>
 <col class=xl2618038 width=24 style='mso-width-source:userset;mso-width-alt:
 877;width:18pt'>
 <col class=xl2618038 width=158 style='mso-width-source:userset;mso-width-alt:
 5778;width:119pt'>
 <col class=xl2618038 width=19 style='mso-width-source:userset;mso-width-alt:
 694;width:14pt'>
 <col class=xl2618038 width=12 style='mso-width-source:userset;mso-width-alt:
 438;width:9pt'>
 <col class=xl2618038 width=19 style='mso-width-source:userset;mso-width-alt:
 694;width:14pt'>
 <col class=xl2618038 width=12 style='mso-width-source:userset;mso-width-alt:
 438;width:9pt'>
 <col class=xl2618038 width=19 style='mso-width-source:userset;mso-width-alt:
 694;width:14pt'>
 <col class=xl2618038 width=77 style='mso-width-source:userset;mso-width-alt:
 2816;width:58pt'>
 <col class=xl2618038 width=30 style='mso-width-source:userset;mso-width-alt:
 1097;width:23pt'>
 <col class=xl2618038 width=12 style='mso-width-source:userset;mso-width-alt:
 438;width:9pt'>
 <col class=xl2618038 width=30 style='mso-width-source:userset;mso-width-alt:
 1097;width:23pt'>
 <col class=xl2618038 width=32 style='mso-width-source:userset;mso-width-alt:
 1170;width:24pt'>
 <col class=xl2618038 width=30 style='mso-width-source:userset;mso-width-alt:
 1097;width:23pt'>
 <col class=xl2618038 width=12 style='mso-width-source:userset;mso-width-alt:
 438;width:9pt'>
 <col class=xl2618038 width=30 style='mso-width-source:userset;mso-width-alt:
 1097;width:23pt'>
 <col class=xl2618038 width=32 style='mso-width-source:userset;mso-width-alt:
 1170;width:24pt'>
 <col class=xl2618038 width=30 style='mso-width-source:userset;mso-width-alt:
 1097;width:23pt'>
 <col class=xl2618038 width=12 style='mso-width-source:userset;mso-width-alt:
 438;width:9pt'>
 <col class=xl2618038 width=30 style='mso-width-source:userset;mso-width-alt:
 1097;width:23pt'>
 <tr height=36 style='height:27.0pt'>
  <td height=36 class=xl2418038 width=4 style='height:27.0pt;width:3pt'>&nbsp;</td>
  <td colspan=20 class=xl2518038 width=675 style='width:509pt'>B - Liga</td>
 </tr>
 <tr height=17 style='height:12.75pt'>
  <td height=17 class=xl2418038 style='height:12.75pt'>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>
  <td class=xl2618038>&nbsp;</td>

usw...
In der Klasse xl2618038 steht die Hintergrundfarbe drin. Aber Excel fügt die Hintergrundfarbe nicht in dem kompletten BODY Bereich ein sondern in jede einzelne Zelle wenn ich das richtig sehe. Muß ich vielleicht unter Excel an einer anderen Stelle die Hintergrundfarbe einstellen? Ich habe einfach alle Zellen mit der Hintergrundfarbe belegt...

MOD EDIT: Code Tags editiert. Bitte demnächst selber drauf achten. (Corvulus)
 
Zuletzt bearbeitet von einem Moderator:
ist natürlich schon eine recht abenteurliche Konstruktion, die Excel da ausspuckt. Aber zurück zum Thema. Ich hab mal Excel rausgekramt und getestet. Du mußt eigentlich nur das Komplette Dokument markieren (siehe excel.gif) und und vergibst dann die Hintergrundfarbe. Die wird dann automatisch für das Body-Element übernommen.

EDIT: Warum wird mein GIF in ein JPG umgewandelt nach dem hochladen? ;ugl
 

Anhänge

  • excel.jpg
    excel.jpg
    14,9 KB · Aufrufe: 4
Da aber die Hintergrundfarbe definitiv übergeben wird, wo auch immer, würde ich an Deiner Stelle diese mit PHP und RegEx auslesen und an BODY übergeben.
 
1. Ich habe keine Ahnung wie PHP oder das ander funktioniert.
2. Die Farbe wird ja nur in eine Klasse ausgegeben. Da ich nicht weiß was PHP ist oder wie das funktionert ist die Frage, geht das dann.
3. Gibt es keine Möglichkeit dem HEAD Bereich folgende Zeile hinzufügen?

Code:
<LINK REL="stylesheet" MEDIA="screen,projection" TYPE="text/css" TITLE="Standardstylesheet" HREF="default.css" />


Wenn das ginge, wären ja sowieso alle Probleme hinfällig. Natürlich kann man die im nachhinein hinzufügen, aber jede Woche 20 Tabellen so zu bearbeiten ist auch nicht toll. Gibt es eine Möglichkeit die Zeile hinzufügen? Vielleicht mit einem externen Programm oder so? Also das man Datein angeben kann und in allen die Zeile im HEAD Bereich stehen muß...

Mod-Edit: Code-Tags hinzugefügt. Bitte beim nächsten Mal selbst machen! (gutschiguh)
 
Zuletzt bearbeitet von einem Moderator:
Also ich hab mal aus meinem OpenOffice heraus ein Dokument als .html exportiert:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HTML>
<HEAD>
    
    <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
    <TITLE></TITLE>
    <META NAME="GENERATOR" CONTENT="OpenOffice.org 2.0  (Win32)">
    <META NAME="CREATED" CONTENT="20070704;16534412">
    <META NAME="CHANGED" CONTENT="16010101;0">
    
    <STYLE>
        <!-- 
        BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Arial"; font-size:x-small }
         -->
    </STYLE>
    
</HEAD>

<BODY TEXT="#000000">
<TABLE FRAME=VOID CELLSPACING=0 COLS=1 RULES=GROUPS BORDER=1>
    <COLGROUP><COL WIDTH=86></COLGROUP>
    <TBODY>
        <TR>
            <TD WIDTH=86 HEIGHT=17 ALIGN=LEFT BGCOLOR="#C0C0C0">Test</TD>
        </TR>
    </TBODY>
</TABLE>
<!-- ************************************************************************** -->
</BODY>

</HTML>
Ganz am Anfang dieser Datei hab ich folgenden PHP-Code:
PHP:
<?php
$css = file_get_contents('tabelle.php');
preg_match('|.firstrow.*{.*BGCOLOR=\".*(#[0-9a-fA-F]{3,6})\"|is', $css, $matches);
?>
dieser liest die hintergrundfarbe der TD aus. Allerdings setzt das voraus, das du die *.html in *.php umbenennst, oder du bringst deinen server dazu html-dateien zu parsen.

und im Body-tag der schreibst du dann:
PHP:
 bgcolor="<? echo $matches[1]?>"
funktioniert super

EDIT: aber das muß ja dann auch von hand eingefügt werden, shit....dachte ich kann dir helfen, sorry
 
Vielen Dank für die Hilfe, aber dann kann ich auch meine CSS Stylesheet Zeile per Hand einfügen.

Trotzdem danke!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben