Domanda

sto usando la versione 1.0 di OpenXML SDK di Microsoft per fare un po 'di analisi di base di file .xlsx. Posso ottenere e analizzare i fogli di lavoro, e posso ottenere un elenco di nomi di foglio di lavoro, ma non posso per la vita di me capire come per collegare quale nome va con quello del foglio di lavoro.

Mi rendo conto che un elemento come <sheet name="My Sheet" sheetId="1" r:id="rId1"/> nella cartella di lavoro è legata ad un foglio di lavoro specifico tramite le relazioni definite nel xl/_rels.xml, ma non riesco a vedere dove nessuna delle informazioni relazione è esposto nella API.

sto usando C #, ma sarebbe alcun esempio VB.NET altrettanto utile.

Mi sento come questo dovrebbe essere semplice morto, ma non riesco a capirlo. Sembra inoltre che potrebbe essere più semplice nella v2.0 del SDK, ma l'aggiornamento non è un'opzione in questo momento.

È stato utile?

Soluzione

Argh ... sì, è finito per essere morto semplice. La classe WorkbookPart espone una proprietà WorksheetParts che mi è stato appeso sull'utilizzo, ma espone anche un metodo GetPartById(relationshipId).

Dato un elenco di elementi <sheet/> dalla cartella di lavoro XML - ognuno dei quali contiene sia un nome e un rapporto id -. Avevo solo bisogno di recuperare ogni WorksheetPart da id

Altri suggerimenti

// Iterate Sheets; Get Name and xref WorksheetPart (container for Worksheet)
foreach (Sheet sheet in doc.WorkbookPart.Workbook.Sheets)
{
    string sName = sheet.Name;
    string sID = sheet.Id;

    WorksheetPart part = (WorksheetPart)doc.WorkbookPart.GetPartById(sID);
    Worksheet actualSheet = part.Worksheet;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top