Hallo,
gibt es ne Möglichkeit in einer eigenen App eine Exceldatei aus dem Internet zu laden um daraus dann Informationen zu beziehen?
Druckbare Version
Hallo,
gibt es ne Möglichkeit in einer eigenen App eine Exceldatei aus dem Internet zu laden um daraus dann Informationen zu beziehen?
Excel aus dem Internet laden ist rein prinzipiell kein Problem. Bei binären Excel-Files wird es halt dann mit dem lesen schwierig, da das Format ja nicht offengelegt ist (seitens Framework gibt es da keine Unterstützung).
Falls es das neue Office-XML-Format ist (*.xlsx) gibt es für .Net generell Libraries die das lesen können, dürfte nicht zu schwer sein das dann auch unter WP7 zum Laufen zu bekommen.
Bzgl. Download würde sich, wenn das einfach auf einem Server liegt am einfachsten ein ganz normales HTTP-Request anbieten um die Datei bevor sie gelesen wird im Isolated Storage unterzubringen.
Hallo,
kenne jetzt die Anforderung nicht, wenn du nur die Informationen aus der Datei brauchst könntest du ein WebService schreiben, welches die Datei downloaded und die Informationen ausliest.
Die Idee ist mir auch schon gekommen, möchte ich aber nicht machen, da es sich um private Daten der Anwender handelt, die ich, in deren Interesse, nicht an meinen Server senden möchte.
Danke für den Tipp. Genau so kann ich es machen.
Jetzt habe ich aber ein anderes Problem.
Und zwar liegt die Datei in einem passwortgeschützten Bereich (Anmeldung+ Cookies vermute ich).
Ich benutze das WebbrowserControl (Microsoft.Phone.Control.WebBrowser) um mich bei der geschützeten Seite anzumelden.
Das klappt auch alles super.
Anschließend möchte ich eine Datei aus dem geschützten Bereich herunterladen. Dazu benötigt man, soweit ich das in Erfahrung gebracht habe, System.Net.WebClient.
Leider unterstütz dieser aber keine Cookies, so dass ich die geschützte Datei nicht aufrufen kann, sondern immer bei der Anmeldeseite lande.
Und mit dem WebBrowser-Control kann man meines Wissens nach keine Dateien auf Windows Phone laden.
Habs nie ausprobiert, sollte aber mit der CookieContainer eingenschaft des HttpWebRequest funktionieren.
http://msdn.microsoft.com/en-us/libr...ookiecontainer
Ansonsten könnte man die Cookies auch selbst speichern und beim nächsten Request senden.
http://en.wikipedia.org/wiki/HTTP_cookie#Implementation
Hallo,
habe schon folgendes ausprobiert:
Zitat:
Zitat von Abt
Ich hab aus einem Beispiel im Internet folgende Klasse extrahiert:
Anschließend versuche ich die Cookies aus dem Webbrowser zu diesem Webclient zu übertragen:Code:public class CookieAwareClient : WebClient
{
[System.Security.SecuritySafeCritical]
public CookieAwareClient()
: base()
{
}
private CookieContainer m_container = new CookieContainer();
public CookieContainer Container
{
get { return m_container; }
set { m_container = value; }
}
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = m_container;
}
return request;
}
}
Das funktioniert aber leider nicht, bzw. ich lande immer wieder auf der LoginSeite.Code:CookieAwareClient cookieClient = new CookieAwareClient();
var x = webBrowser.GetCookies();
cookieClient.Container.Add(e.Uri,webBrowser.GetCookies());
cookieClient.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
cookieClient.OpenReadAsync(new Uri("https://irgendeineseite.de"));