c# - Generate sheet separated excel with GridView in MVC web enviroment -


i use following code, , i'm wondering if can somehow make sheet separated excel file each row in own sheet.

datatable dt = new datatable(); sqlconnection objcon = new sqlconnection(connectionstring); string sql = "select * table";  sqldataadapter objda = new sqldataadapter(sql, objcon); objda.fill(dt);  gridview gvreport = new gridview(); gvreport.datasource = dt; gvreport.databind();  string date = datetime.now.tostring("yyyy_mm_dd_hhmmss");  string filename = string.format("thefilename_{0}.xls", date);  response.clearcontent(); response.addheader("content-disposition", "attachment; filename=" + filename); response.contenttype = "application/excel"; system.io.stringwriter sw = new system.io.stringwriter(); htmltextwriter htw = new htmltextwriter(sw); gvreport.rendercontrol(htw); response.write(sw.tostring()); response.end();  return null; 

i know doesn't generate real excel file rather tricks browser create one. why bit more complicated make advanced excel files. i've tried things setting max amount of rows per gridview page , on.

are there way of doing this, or in general create excel file in way allows me this. without needing windows office or similar installed.

thank time.

i use openxml. i'm guess reason creating excel file on fly because don't want use interop objects because heavy , bulky. still need flexibility manipulate objects. @ openxml library contains many of manipulations looking code below started. in above link you'll notice there example mvc. doesn't change underlying code much.

 using (spreadsheetdocument spreadsheetdocument = spreadsheetdocument.create(filename, spreadsheetdocumenttype.workbook))         {                    workbookpart workbookpart = spreadsheetdocument.addworkbookpart();                    worksheetpart worksheetpart = workbookpart.addnewpart<worksheetpart>();                    workbookstylespart workbookstylespart = workbookpart.addnewpart<workbookstylespart>();                   stylesheet stylesheet = new customstylesheet();                   stylesheet.save(workbookstylespart);                    string relid = workbookpart.getidofpart(worksheetpart);                    workbook workbook = new workbook();                    worksheet worksheet = new worksheet();                     var columns = createcolumns();                    sheets sheets = new sheets();                   sheet sheet = new sheet { name = "mysheet", sheetid = 1, id = relid };                   sheets.append(sheet);                     worksheet.append(columns);                     sheetdata sheetdata = createsheetdata();                    worksheet.append(sheetdata);                    workbook.append(sheets);                    worksheetpart.worksheet = worksheet;                   worksheetpart.worksheet.save();                                 spreadsheetdocument.workbookpart.workbook = workbook;                   spreadsheetdocument.workbookpart.workbook.save();                    //now want add empty sheet                                        sheet = new sheet { name = "mysheet2", sheetid = 2, id = relid };                  sheets.append(sheet);                     spreadsheetdocument.workbookpart.workbook.save();                  spreadsheetdocument.close();         } 

Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -