workbook_test.go 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package xlsx
  2. import (
  3. "bytes"
  4. "encoding/xml"
  5. "testing"
  6. )
  7. // Test we can succesfully unmarshal the workbook.xml file from within
  8. // an XLSX file and return a xlsxWorkbook struct (and associated
  9. // children).
  10. func TestUnmarshallWorkbookXML(t *testing.T) {
  11. var error error
  12. var buf = bytes.NewBufferString(`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4506"/><workbookPr defaultThemeVersion="124226"/><bookViews><workbookView xWindow="120" yWindow="75" windowWidth="15135" windowHeight="7620"/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/><sheet name="Sheet2" sheetId="2" r:id="rId2"/><sheet name="Sheet3" sheetId="3" r:id="rId3"/></sheets><definedNames><definedName name="monitors" localSheetId="0">Sheet1!$A$1533</definedName></definedNames><calcPr calcId="125725"/></workbook>`)
  13. var workbook *xlsxWorkbook
  14. workbook = new(xlsxWorkbook)
  15. error = xml.NewDecoder(buf).Decode(workbook)
  16. if error != nil {
  17. t.Error(error.Error())
  18. return
  19. }
  20. if workbook.FileVersion.AppName != "xl" {
  21. t.Error("Expected FileVersion.AppName == 'xl')")
  22. }
  23. if workbook.FileVersion.LastEdited != "4" {
  24. t.Error("Expected FileVersion.LastEdited == '4'")
  25. }
  26. if workbook.FileVersion.LowestEdited != "4" {
  27. t.Error("Expected FileVersion.LowestEdited == '4'")
  28. }
  29. if workbook.FileVersion.RupBuild != "4506" {
  30. t.Error("Expected FileVersion.RupBuild == '4506'")
  31. }
  32. if workbook.WorkbookPr.DefaultThemeVersion != "124226" {
  33. t.Error("Expected workbook.WorkbookPr.DefaultThemeVersion == '124226'")
  34. }
  35. if len(workbook.BookViews.WorkBookView) == 0 {
  36. t.Error("Expected len(workbook.BookViews.WorkBookView) == 0")
  37. }
  38. workBookView := workbook.BookViews.WorkBookView[0]
  39. if workBookView.XWindow != "120" {
  40. t.Error("Expected workBookView.XWindow == '120'")
  41. }
  42. if workBookView.YWindow != "75" {
  43. t.Error("Expected workBookView.YWindow == '75'")
  44. }
  45. if workBookView.WindowWidth != "15135" {
  46. t.Error("Expected workBookView.WindowWidth == '15135'")
  47. }
  48. if workBookView.WindowHeight != "7620" {
  49. t.Error("Expected workBookView.WindowHeight == '7620'")
  50. }
  51. if len(workbook.Sheets.Sheet) == 0 {
  52. t.Error("Expected len(workbook.Sheets.Sheet) == 0")
  53. }
  54. sheet := workbook.Sheets.Sheet[0]
  55. if sheet.Id != "rId1" {
  56. t.Error("Expected sheet.Id == 'rID1'")
  57. }
  58. if sheet.Name != "Sheet1" {
  59. t.Error("Expected sheet.Name == 'Sheet1'")
  60. }
  61. if sheet.SheetId != "1" {
  62. t.Error("Expected sheet.SheetId == '1'")
  63. }
  64. if len(workbook.DefinedNames.DefinedName) == 0 {
  65. t.Error("Expected len(workbook.DefinedNames.DefinedName) == 0")
  66. }
  67. dname := workbook.DefinedNames.DefinedName[0]
  68. if dname.Data != "Sheet1!$A$1533" {
  69. t.Error("dname.Data == 'Sheet1!$A$1533', but got '", dname.Data, "'")
  70. }
  71. if dname.LocalSheetID != "0" {
  72. t.Error("dname.LocalSheetID == '0'")
  73. }
  74. if dname.Name != "monitors" {
  75. t.Error("Expected dname.Name == 'monitors'")
  76. }
  77. if workbook.CalcPr.CalcId != "125725" {
  78. t.Error("workbook.CalcPr.CalcId != '125725'")
  79. }
  80. }