workbook_test.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package xlsx
  2. import (
  3. "bytes"
  4. "os"
  5. "testing"
  6. "xml"
  7. )
  8. // Test we can succesfully unmarshal the workbook.xml file from within
  9. // an XLSX file and return a XLSXWorkbook struct (and associated
  10. // children).
  11. func TestUnmarshallWorkbookXML(t *testing.T) {
  12. var error os.Error
  13. 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>`)
  14. var workbook *XLSXWorkbook
  15. workbook = new(XLSXWorkbook)
  16. error = xml.Unmarshal(buf, workbook)
  17. if error != nil {
  18. t.Error(error.String())
  19. return
  20. }
  21. if workbook.FileVersion.AppName != "xl" {
  22. t.Error("Expected FileVersion.AppName == 'xl')")
  23. }
  24. if workbook.FileVersion.LastEdited != "4" {
  25. t.Error("Expected FileVersion.LastEdited == '4'")
  26. }
  27. if workbook.FileVersion.LowestEdited != "4" {
  28. t.Error("Expected FileVersion.LowestEdited == '4'")
  29. }
  30. if workbook.FileVersion.RupBuild != "4506" {
  31. t.Error("Expected FileVersion.RupBuild == '4506'")
  32. }
  33. if workbook.WorkbookPr.DefaultThemeVersion != "124226" {
  34. t.Error("Expected workbook.WorkbookPr.DefaultThemeVersion == '124226'")
  35. }
  36. if len(workbook.BookViews.WorkBookView) == 0 {
  37. t.Error("Expected len(workbook.BookViews.WorkBookView) == 0")
  38. }
  39. workBookView := workbook.BookViews.WorkBookView[0]
  40. if workBookView.XWindow != "120" {
  41. t.Error("Expected workBookView.XWindow == '120'")
  42. }
  43. if workBookView.YWindow != "75" {
  44. t.Error("Expected workBookView.YWindow == '75'")
  45. }
  46. if workBookView.WindowWidth != "15135" {
  47. t.Error("Expected workBookView.WindowWidth == '15135'")
  48. }
  49. if workBookView.WindowHeight != "7620" {
  50. t.Error("Expected workBookView.WindowHeight == '7620'")
  51. }
  52. if len(workbook.Sheets.Sheet) == 0 {
  53. t.Error("Expected len(workbook.Sheets.Sheet) == 0")
  54. }
  55. sheet := workbook.Sheets.Sheet[0]
  56. if sheet.Id != "rId1" {
  57. t.Error("Expected sheet.Id == 'rID1'")
  58. }
  59. if sheet.Name != "Sheet1" {
  60. t.Error("Expected sheet.Name == 'Sheet1'")
  61. }
  62. if sheet.SheetId != "1" {
  63. t.Error("Expected sheet.SheetId == '1'")
  64. }
  65. if len(workbook.DefinedNames.DefinedName) == 0 {
  66. t.Error("Expected len(workbook.DefinedNames.DefinedName) == 0")
  67. }
  68. dname := workbook.DefinedNames.DefinedName[0]
  69. if dname.Data != "Sheet1!$A$1533" {
  70. t.Error("dname.Data == 'Sheet1!$A$1533'")
  71. }
  72. if dname.LocalSheetID != "0" {
  73. t.Error("dname.LocalSheetID == '0'")
  74. }
  75. if dname.Name != "monitors" {
  76. t.Error("Expected dname.Name == 'monitors'")
  77. }
  78. if workbook.CalcPr.CalcId != "125725" {
  79. t.Error("workbook.CalcPr.CalcId != '125725'")
  80. }
  81. }