i've been following guide https://msdn.microsoft.com/en-us/library/office/cc861607.aspx insert string cell in excel file. example confusing, , when copy/paste doesn't work. i'm looking simple example insert a value cell like:
spredsheet.insertcell("a", 1, string value)
i use simple code example showing me how insert data cell using openxml in asp.net.
i tried code post using openxml insert datatable excel, creates broken excel file. how code without helper functions link
using (spreadsheetdocument mydoc = spreadsheetdocument. create(server.mappath("/data.xls"), spreadsheetdocumenttype.workbook)) { workbookpart workbookpart = mydoc.addworkbookpart(); workbookpart.workbook = new workbook(); // add worksheetpart workbookpart. worksheetpart worksheetpart = workbookpart.addnewpart<worksheetpart>(); //add column names first row row header = new row(); header.rowindex = (uint32)1; sheetdata sheetdata = new sheetdata(); cell headercell = createtextcell(1, 1, text); header.appendchild(headercell); sheetdata.appendchild(header); // add workbookpart document. worksheetpart.worksheet = new worksheet(sheetdata); }
the msdn example using spreadsheetdocument.open
opens existing file creating brand new file spreadsheetdocument.create
. when create brand new file there elements must create in order file valid. elements missing sheets
, sheet
elements.
sheets
stored separately sheetdata
need create sheet
inside sheets
, associate sheets
worksheetpart
.
this can done so:
sheets sheets = mydoc.workbookpart.workbook.appendchild(new sheets()); sheets.appendchild(new sheet() { id = mydoc.workbookpart.getidofpart(mydoc.workbookpart.worksheetparts.first()), sheetid = 1, name = "sheet1" });
so full code listing like:
using (spreadsheetdocument mydoc = spreadsheetdocument. create(server.mappath("/data.xls"), spreadsheetdocumenttype.workbook)) { workbookpart workbookpart = mydoc.addworkbookpart(); workbookpart.workbook = new workbook(); // add worksheetpart workbookpart. worksheetpart worksheetpart = workbookpart.addnewpart<worksheetpart>(); //add column names first row row header = new row(); header.rowindex = (uint32)1; sheetdata sheetdata = new sheetdata(); cell headercell = createtextcell(1, 1, text); header.appendchild(headercell); sheetdata.appendchild(header); // add workbookpart document. worksheetpart.worksheet = new worksheet(sheetdata); //this part missing code sheets sheets = mydoc.workbookpart.workbook.appendchild(new sheets()); sheets.appendchild(new sheet() { id = mydoc.workbookpart.getidofpart(mydoc.workbookpart.worksheetparts.first()), sheetid = 1, name = "sheet1" }); }
Comments
Post a Comment