c# Zugriff auf LIstitems (Excel)

ForcesBI

Grünschnabel
Hallo zusammen,

zunächst einmal möchte ich an der Stelle sagen dass ich mittlerweile viel gesucht habe auch in anderen Foren, irgendwie komme ich aber nicht ganz weiter...vielleicht kann mir jemand einfach mal einen Schübser in die richtige Richtung geben!

Ich würde gerne aus einer Documents List, die Excel Items anzeigt auf diese per c# zugreifen und nach csv exportieren. Eine entsprechende Liste konnte ich bereits innerhalb eines Webparts laden, ich kann auch auf die items zugreifen...jedoch noch nicht so dass ich die excel items auslesen kann und jeweils aufs Filesystem schreiben kann. Ich denke mal alles im einem kann das nicht so viel Arbeit sein, oder?

Hier meine Anfänge schon mal...wie gehe ich da am besten weiter vor vom technischen Ablauf her?

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

// Ablauf der Export-untkion

// zunächst auf die Liste zugreifen die momentan im Webpart geöffnet ist
// hier befinden sich nämlich alle Excel Dokumente die exportiert werden sollen

// Zugriff auf das erste Dokument in der Liste
// Export des ersten doks auf das FileSystem z.b. exceldatei.csv

// zugriff auf das nächste Dok in der Liste
// erneuter Export - quasi in der Schleife

namespace WebPart2
{
[Guid("77bd5ade-bab3-4889-81d4-12dc0e24c0d0")]
public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
{
private Microsoft.SharePoint.SPWeb currentweb = null;
private Microsoft.SharePoint.SPList weblist = null;
String customlistname = "Approved Documents";

public WebPart1()
{
}

protected override void CreateChildControls()
{
base.CreateChildControls();

// TODO: add custom rendering code here.
// Label label = new Label();
// label.Text = "Hello World";
// this.Controls.Add(label);
}

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write("Schritt 1. - WebPart soll Excel Dokumente in ein CSV File exportieren");
writer.WriteBreak();
writer.Write("Schritt 2. - exportierte File befindet sich nach jedem Export im folgenden Ordner:");
writer.Write("Info: jeder getätigter Export überschreibt den aktuellen Stand einer CSV Datei");


base.Render(writer);

try
{
// this is the current web
this.currentweb = Microsoft.SharePoint.SPContext.Current.Web;
// this gets the list from sharepoint
this.weblist = this.currentweb.Lists[customlistname];
writer.Write(this.weblist.Title.ToString());
writer.Write("----------" );

foreach (SPListItem oListItem in collListItems)
{
String testtext = oListItem.Name.ToString();

}

}

catch (Exception)
{

// if error then show msg here
writer.Write("Fehler beim laden der liste");
}

}

}

}

Vielen vielen Dank schon mal im voraus....
 
Oh, hat keiner einen Ratschlag in dem Fall? Hmm dann hat das sicherlich bisher keiner gemacht;-) Kann ich mir aber nicht vorstellen...
 
Hallo nochmal,

ok ich konnte jetzt ein paar Sachen rausbekommen...allerdings hakt es bei der Vergabe des FilePatch mit dem ich das workbook öffnen lassen möchte. Hier mal der entscheidende Teil des Codes:

String filename = "http://server:10200/SGFspecialfact/Approved Documents/template1.xls";

Microsoft.Office.Interop.Excel.Application excel;
Microsoft.Office.Interop.Excel.Workbook excelWorkbook;
Microsoft.Office.Interop.Excel.Worksheet worksheet;
writer.Write("2. " + filename);
excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
excel.Visible = false;
string workbookPath = filename;

excelWorkbook = excel.Workbooks.Open(filename, 0, false, 5, "", "", false, XlPlatform.xlWindows, "", true, false, 0, true, false, false);
Sheets sheets = excelWorkbook.Worksheets;
worksheet = (Worksheet)sheets.get_Item(1);

Das Problem ist jetzt wie bereits erwähnt der [String filename = "http://server:10200/SGFspecialfact/Approved Documents/template1.xls";]. Geht das so oder muss der Pfad in dem Fall anders gesetzt werden?

Vielen Dank dafür..
 

Neue Beiträge

Zurück