excel - Error when opening XLSX file made by tealeg xlsx in Go language on Google App Engine -


i'm using https://github.com/tealeg/xlsx generate xlsx file in go language. application running on google app engine.

var file *xlsx.file var sheet *xlsx.sheet var row *xlsx.row var cell *xlsx.cell var err error  file = xlsx.newfile() sheet, err = file.addsheet("test") if err != nil {   fmt.printf(err.error()) } row = sheet.addrow() cell = row.addcell() cell.value = "i cell!"  w.header().set("content-type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") w.header().add("content-disposition", "attachment; filename=test.xlsx") file.write(w) fmt.fprint(w, nil) 

the variable w http.responsewriter.

i have tested code , browser downloaded xlsx file , can open libreoffice on linux 64 bit. when tried open file microsoft excel 2010 on windows 7 32 bit, gave me following error message:-

excel found unreadable content in 'test.xlsx'. want recover contents of workbook? if trust source of workbook, click yes.

once clicked yes, showed content "i cell!" correctly clicked on enable editing button , gave me message:-

excel completed file level validation , repair. parts of workbook may have been repaired or discarded.

how fix problem making microsoft excel opens xlsx files generated tealeg/xlsx without error message?

your last line unnecessary, , corrupts excel file (xlsx zip archive):

fmt.fprint(w, nil) 

this print bytes of "<nil>" string web response after wrote content of excel file, believe left there accident. remove that.

also file.write() returns error, check that, example:

if err = file.write(w); err != nil {     // handle error, e.g. log , send error response } 

if error still persists, it's not appengine related. suggest first try excel generation locally, saving file using file.save(), e.g.:

if err = file.save("myxlsxfile.xlsx"); err != nil {     fmt.println("failed save file:", err) } // if no error, try opening "myxlsxfile.xlsx" on computer. 

also note comment home page of library:

the support writing xlsx files extremely minimal. expand slowly, in meantime patches welcome!


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -