I want to update a cell in a spreadsheet that is used by a chart, using the Open XML SDK 2.0 (CTP). All the code samples I have found insert new cells. I am struggling with retrieving the right worksheet.
public static void InsertText(string docName, string text, uint rowIndex, string columnName) { // Open the document for editing. using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Open(docName, true)) { Workbook workBook = spreadSheet.WorkbookPart.Workbook; WorksheetPart worksheetPart = workBook.WorkbookPart. WorksheetParts.First(); SheetData sheetData = worksheetPart.Worksheet. GetFirstChild<SheetData>(); // If the worksheet does not contain a row with the specified // row index, insert one. Row row; if (sheetData.Elements<Row>().Where( r => r.RowIndex == rowIndex).Count() != 0) // At this point I am expecting a match for a row that exists // in sheet1 but I am not getting one
When I navigate the tree in Visual Studio, I am seeing three sheets, but none of them has any children. What am I missing?
Here is the working code. This is a prototype. For a larger number of changes, one might open the document only once. Also, there are some hard-coded things like sheet name and cell type that would have to be parameterized before this can be called production-ready. http://openxmldeveloper.org/forums/4005/ShowThread.aspx was very helpful.