From 03234d6a254ea9fca674bf11564e88a5bd4d054f Mon Sep 17 00:00:00 2001 From: Ri Xu Date: Sun, 22 Jan 2017 16:16:03 +0800 Subject: [PATCH] Support add picture with offset and scaling. --- README.md | 10 ++- col.go | 183 ++++++++++++++++++++++++++++++++++++++++++ excelize_test.go | 41 ++++------ picture.go | 79 ++++++++++++------ test/Workbook1.xlsx | Bin 22867 -> 22958 bytes test/images/excel.bmp | Bin 32824 -> 0 bytes test/images/excel.gif | Bin 4669 -> 4952 bytes test/images/excel.ico | Bin 67646 -> 0 bytes test/images/excel.jpg | Bin 3883 -> 3960 bytes test/images/excel.png | Bin 8792 -> 8991 bytes test/images/excel.tif | Bin 31408 -> 0 bytes xmlDrawing.go | 9 ++- 12 files changed, 268 insertions(+), 54 deletions(-) delete mode 100644 test/images/excel.bmp delete mode 100644 test/images/excel.ico delete mode 100644 test/images/excel.tif diff --git a/README.md b/README.md index f9ead958..0346fe80 100644 --- a/README.md +++ b/README.md @@ -114,13 +114,21 @@ package main import ( "fmt" "os" + _ "image/gif" + _ "image/jpeg" + _ "image/png" "github.com/Luxurioust/excelize" ) func main() { xlsx := excelize.CreateFile() - err := xlsx.AddPicture("Sheet1", "A2", "H9", "/tmp/image.jpg") + // Insert a picture. + err := xlsx.AddPicture("Sheet1", "A2", "/tmp/image1.jpg", 0, 0, 1, 1) + // Insert a picture to sheet with scaling. + err = xlsx.AddPicture("Sheet1", "D2", "/tmp/image1.png", 0, 0, 0.5, 0.5) + // Insert a picture offset in the cell. + err = xlsx.AddPicture("Sheet1", "H2", "/tmp/image3.gif", 15, 10, 1, 1) if err != nil { fmt.Println(err) os.Exit(1) diff --git a/col.go b/col.go index 7b583c52..60adab44 100644 --- a/col.go +++ b/col.go @@ -2,9 +2,18 @@ package excelize import ( "encoding/xml" + "math" + "strconv" "strings" ) +// Define the default cell size and EMU unit of measurement. +const ( + defaultColWidthPixels int = 64 + defaultRowHeightPixels int = 20 + EMU int = 9525 +) + // SetColWidth provides function to set the width of a single column or multiple // columns. For example: // @@ -41,3 +50,177 @@ func (f *File) SetColWidth(sheet, startcol, endcol string, width float64) { output, _ := xml.Marshal(xlsx) f.saveFileList(name, replaceWorkSheetsRelationshipsNameSpace(string(output))) } + +// positionObjectPixels calculate the vertices that define the position of a +// graphical object within the worksheet in pixels. +// +// +------------+------------+ +// | A | B | +// +-----+------------+------------+ +// | |(x1,y1) | | +// | 1 |(A1)._______|______ | +// | | | | | +// | | | | | +// +-----+----| OBJECT |-----+ +// | | | | | +// | 2 | |______________. | +// | | | (B2)| +// | | | (x2,y2)| +// +-----+------------+------------+ +// +// Example of an object that covers some of the area from cell A1 to B2. +// +// Based on the width and height of the object we need to calculate 8 vars: +// +// colStart, rowStart, colEnd, rowEnd, x1, y1, x2, y2. +// +// We also calculate the absolute x and y position of the top left vertex of +// the object. This is required for images. +// +// The width and height of the cells that the object occupies can be +// variable and have to be taken into account. +// +// The values of col_start and row_start are passed in from the calling +// function. The values of col_end and row_end are calculated by +// subtracting the width and height of the object from the width and +// height of the underlying cells. +// +// colStart # Col containing upper left corner of object. +// x1 # Distance to left side of object. +// +// rowStart # Row containing top left corner of object. +// y1 # Distance to top of object. +// +// colEnd # Col containing lower right corner of object. +// x2 # Distance to right side of object. +// +// rowEnd # Row containing bottom right corner of object. +// y2 # Distance to bottom of object. +// +// width # Width of object frame. +// height # Height of object frame. +// +// xAbs # Absolute distance to left side of object. +// yAbs # Absolute distance to top side of object. +// +func (f *File) positionObjectPixels(sheet string, colStart, rowStart, x1, y1, width, height int) (int, int, int, int, int, int, int, int) { + xAbs := 0 + yAbs := 0 + + // Calculate the absolute x offset of the top-left vertex. + for colID := 1; colID <= colStart; colID++ { + xAbs += f.getColWidth(sheet, colID) + } + xAbs += x1 + + // Calculate the absolute y offset of the top-left vertex. + // Store the column change to allow optimisations. + for rowID := 1; rowID <= rowStart; rowID++ { + yAbs += f.getRowHeight(sheet, rowID) + } + yAbs += y1 + + // Adjust start column for offsets that are greater than the col width. + for x1 >= f.getColWidth(sheet, colStart) { + x1 -= f.getColWidth(sheet, colStart) + colStart++ + } + + // Adjust start row for offsets that are greater than the row height. + for y1 >= f.getRowHeight(sheet, rowStart) { + y1 -= f.getRowHeight(sheet, rowStart) + rowStart++ + } + + // Initialise end cell to the same as the start cell. + colEnd := colStart + rowEnd := rowStart + + width += x1 + height += y1 + + // Subtract the underlying cell widths to find end cell of the object. + for width >= f.getColWidth(sheet, colEnd) { + colEnd++ + width -= f.getColWidth(sheet, colEnd) + } + + // Subtract the underlying cell heights to find end cell of the object. + for height >= f.getRowHeight(sheet, rowEnd) { + rowEnd++ + height -= f.getRowHeight(sheet, rowEnd) + } + + // The end vertices are whatever is left from the width and height. + x2 := width + y2 := height + return colStart, rowStart, xAbs, yAbs, colEnd, rowEnd, x2, y2 +} + +// getColWidth provides function to get column width in pixels by given sheet +// name and column index. +func (f *File) getColWidth(sheet string, col int) int { + var xlsx xlsxWorksheet + name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml" + xml.Unmarshal([]byte(f.readXML(name)), &xlsx) + if xlsx.Cols != nil { + var width float64 + for _, v := range xlsx.Cols.Col { + if v.Min <= col && col <= v.Max { + width = v.Width + } + } + if width != 0 { + return int(convertColWidthToPixels(width)) + } + } + // Optimisation for when the column widths haven't changed. + return defaultColWidthPixels +} + +// getRowHeight provides function to get row height in pixels by given sheet +// name and row index. +func (f *File) getRowHeight(sheet string, row int) int { + var xlsx xlsxWorksheet + name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml" + xml.Unmarshal([]byte(f.readXML(name)), &xlsx) + for _, v := range xlsx.SheetData.Row { + if v.R == row && v.Ht != "" { + ht, _ := strconv.ParseFloat(v.Ht, 64) + return int(convertRowHeightToPixels(ht)) + } + } + // Optimisation for when the row heights haven't changed. + return defaultRowHeightPixels +} + +// convertColWidthToPixels provieds function to convert the width of a cell from +// user's units to pixels. Excel rounds the column width to the nearest pixel. +// If the width hasn't been set by the user we use the default value. If the +// column is hidden it has a value of zero. +func convertColWidthToPixels(width float64) float64 { + var padding float64 = 5 + var pixels float64 + var maxDigitWidth float64 = 7 + if width == 0 { + return pixels + } + if width < 1 { + pixels = (width * 12) + 0.5 + return math.Ceil(pixels) + } + pixels = (width*maxDigitWidth + 0.5) + padding + return math.Ceil(pixels) +} + +// convertRowHeightToPixels provides function to convert the height of a cell +// from user's units to pixels. If the height hasn't been set by the user we use +// the default value. If the row is hidden it has a value of zero. +func convertRowHeightToPixels(height float64) float64 { + var pixels float64 + if height == 0 { + return pixels + } + pixels = math.Ceil(4.0 / 3.0 * height) + return pixels +} diff --git a/excelize_test.go b/excelize_test.go index 278912b3..8da4a999 100644 --- a/excelize_test.go +++ b/excelize_test.go @@ -1,6 +1,9 @@ package excelize import ( + _ "image/gif" + _ "image/jpeg" + _ "image/png" "strconv" "testing" ) @@ -92,29 +95,22 @@ func TestAddPicture(t *testing.T) { t.Log(err) } // Test add picture to sheet. - err = xlsx.AddPicture("Sheet2", "I1", "L10", "./test/images/excel.jpg") + err = xlsx.AddPicture("Sheet2", "I9", "./test/images/excel.jpg", 140, 120, 1, 1) if err != nil { t.Log(err) } - err = xlsx.AddPicture("Sheet1", "F21", "G25", "./test/images/excel.png") - if err != nil { - t.Log(err) - } - err = xlsx.AddPicture("Sheet2", "L1", "O10", "./test/images/excel.bmp") - if err != nil { - t.Log(err) - } - err = xlsx.AddPicture("Sheet1", "G21", "H25", "./test/images/excel.ico") - if err != nil { - t.Log(err) - } - // Test add picture to sheet with unsupport file type. - err = xlsx.AddPicture("Sheet1", "G21", "H25", "./test/images/excel.icon") + // Test add picture to sheet with offset. + err = xlsx.AddPicture("Sheet1", "F21", "./test/images/excel.png", 10, 10, 1, 1) if err != nil { t.Log(err) } // Test add picture to sheet with invalid file path. - err = xlsx.AddPicture("Sheet1", "G21", "H25", "./test/Workbook1.xlsx") + err = xlsx.AddPicture("Sheet1", "G21", "./test/images/excel.icon", 0, 0, 1, 1) + if err != nil { + t.Log(err) + } + // Test add picture to sheet with unsupport file type. + err = xlsx.AddPicture("Sheet1", "G21", "./test/Workbook1.xlsx", 0, 0, 1, 1) if err != nil { t.Log(err) } @@ -160,12 +156,12 @@ func TestCreateFile(t *testing.T) { xlsx.SetCellInt("Sheet2", "A23", 56) xlsx.SetCellStr("SHEET1", "B20", "42") xlsx.SetActiveSheet(0) - // Test add picture to sheet. - err := xlsx.AddPicture("Sheet1", "H2", "K12", "./test/images/excel.gif") + // Test add picture to sheet with scaling. + err := xlsx.AddPicture("Sheet1", "H2", "./test/images/excel.gif", 0, 0, 0.5, 0.5) if err != nil { t.Log(err) } - err = xlsx.AddPicture("Sheet1", "C2", "F12", "./test/images/excel.tif") + err = xlsx.AddPicture("Sheet1", "C2", "./test/images/excel.png", 0, 0, 1, 1) if err != nil { t.Log(err) } @@ -176,13 +172,10 @@ func TestCreateFile(t *testing.T) { } func TestSetColWidth(t *testing.T) { - xlsx, err := OpenFile("./test/Workbook1.xlsx") - if err != nil { - t.Log(err) - } + xlsx := CreateFile() xlsx.SetColWidth("sheet1", "B", "A", 12) xlsx.SetColWidth("sheet1", "A", "B", 12) - err = xlsx.Save() + err := xlsx.WriteTo("./test/Workbook_4.xlsx") if err != nil { t.Log(err) } diff --git a/picture.go b/picture.go index bbd7cf39..e29ffd3f 100644 --- a/picture.go +++ b/picture.go @@ -5,6 +5,7 @@ import ( "encoding/xml" "errors" "fmt" + "image" "io/ioutil" "os" "path" @@ -13,18 +14,42 @@ import ( "strings" ) -// AddPicture provide the method to add picture in a sheet by given xAxis, yAxis +// AddPicture provides the method to add picture in a sheet by given xAxis, yAxis // and file path. For example: // -// xlsx := excelize.CreateFile() -// err := xlsx.AddPicture("Sheet1", "A2", "H9", "./image.jpg") -// if err != nil { -// fmt.Println(err) -// os.Exit(1) +// package main +// +// import ( +// "fmt" +// "os" +// _ "image/gif" +// _ "image/jpeg" +// _ "image/png" +// +// "github.com/Luxurioust/excelize" +// ) +// +// func main() { +// xlsx := excelize.CreateFile() +// // Insert a picture. +// err := xlsx.AddPicture("Sheet1", "A2", "/tmp/image1.jpg", 0, 0, 1, 1) +// // Insert a picture to sheet with scaling. +// err = xlsx.AddPicture("Sheet1", "D2", "/tmp/image1.png", 0, 0, 0.5, 0.5) +// // Insert a picture offset in the cell. +// err = xlsx.AddPicture("Sheet1", "H2", "/tmp/image3.gif", 15, 10, 1, 1) +// if err != nil { +// fmt.Println(err) +// os.Exit(1) +// } +// err = xlsx.WriteTo("/tmp/Workbook.xlsx") +// if err != nil { +// fmt.Println(err) +// os.Exit(1) +// } // } // -func (f *File) AddPicture(sheet string, xAxis string, yAxis string, picture string) error { - var supportTypes = map[string]string{".bmp": ".jpeg", ".gif": ".gif", ".ico": ".png", ".tif": ".tiff", ".tiff": ".tiff", ".jpg": ".jpeg", ".jpeg": ".jpeg", ".png": ".png"} +func (f *File) AddPicture(sheet, cell, picture string, offsetX, offsetY int, xScale, yScale float64) error { + var supportTypes = map[string]string{".gif": ".gif", ".jpg": ".jpeg", ".jpeg": ".jpeg", ".png": ".png"} var err error // Check picture exists first. if _, err = os.Stat(picture); os.IsNotExist(err) { @@ -34,6 +59,8 @@ func (f *File) AddPicture(sheet string, xAxis string, yAxis string, picture stri if !ok { return errors.New("Unsupported image extension") } + readFile, _ := os.Open(picture) + image, _, err := image.DecodeConfig(readFile) _, file := filepath.Split(picture) // Read sheet data. var xlsx xlsxWorksheet @@ -57,7 +84,7 @@ func (f *File) AddPicture(sheet string, xAxis string, yAxis string, picture stri f.addSheetDrawing(sheet, rID) } drawingRID = f.addDrawingRelationships(drawingID, SourceRelationshipImage, "../media/image"+strconv.Itoa(pictureID)+ext) - f.addDrawing(drawingXML, xAxis, yAxis, file, drawingRID) + f.addDrawing(sheet, drawingXML, cell, file, offsetX, offsetY, image.Width, image.Height, drawingRID, xScale, yScale) f.addMedia(picture, ext) f.addDrawingContentTypePart(drawingID) return err @@ -127,17 +154,15 @@ func (f *File) countDrawings() int { // yAxis, file name and relationship index. In order to solve the problem that // the label structure is changed after serialization and deserialization, two // different structures: decodeWsDr and encodeWsDr are defined. -func (f *File) addDrawing(drawingXML string, xAxis string, yAxis string, file string, rID int) { - xAxis = strings.ToUpper(xAxis) - fromCol := string(strings.Map(letterOnlyMapF, xAxis)) - fromRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, xAxis)) - fromXAxis := fromRow - 1 - fromYAxis := titleToNumber(fromCol) - yAxis = strings.ToUpper(yAxis) - ToCol := string(strings.Map(letterOnlyMapF, yAxis)) - ToRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, yAxis)) - ToXAxis := ToRow - 1 - ToYAxis := titleToNumber(ToCol) +func (f *File) addDrawing(sheet, drawingXML, cell, file string, offsetX, offsetY, width, height, rID int, xScale, yScale float64) { + cell = strings.ToUpper(cell) + fromCol := string(strings.Map(letterOnlyMapF, cell)) + fromRow, _ := strconv.Atoi(strings.Map(intOnlyMapF, cell)) + row := fromRow - 1 + col := titleToNumber(fromCol) + width = int(float64(width) * xScale) + height = int(float64(height) * yScale) + colStart, rowStart, _, _, colEnd, rowEnd, x2, y2 := f.positionObjectPixels(sheet, col, row, offsetX, offsetY, width, height) content := encodeWsDr{} content.WsDr.A = NameSpaceDrawingML content.WsDr.Xdr = NameSpaceSpreadSheetDrawing @@ -157,11 +182,15 @@ func (f *File) addDrawing(drawingXML string, xAxis string, yAxis string, file st twoCellAnchor := xlsxTwoCellAnchor{} twoCellAnchor.EditAs = "oneCell" from := xlsxFrom{} - from.Col = fromYAxis - from.Row = fromXAxis + from.Col = colStart + from.ColOff = offsetX * EMU + from.Row = rowStart + from.RowOff = offsetY * EMU to := xlsxTo{} - to.Col = ToYAxis - to.Row = ToXAxis + to.Col = colEnd + to.ColOff = x2 * EMU + to.Row = rowEnd + to.RowOff = y2 * EMU twoCellAnchor.From = &from twoCellAnchor.To = &to pic := xlsxPic{} @@ -245,7 +274,7 @@ func (f *File) addMedia(file string, ext string) { // in http://purl.oclc.org/ooxml/officeDocument/relationships/image and // appropriate content type. func (f *File) addDrawingContentTypePart(index int) { - var imageTypes = map[string]bool{"jpeg": false, "png": false, "gif": false, "tiff": false} + var imageTypes = map[string]bool{"jpeg": false, "png": false, "gif": false} var content xlsxTypes xml.Unmarshal([]byte(f.readXML(`[Content_Types].xml`)), &content) for _, v := range content.Defaults { diff --git a/test/Workbook1.xlsx b/test/Workbook1.xlsx index f6f713c1f153d1e4a35f0f95c89b43ba23396ce1..d287361c740d9c6130f0e2cba24533221f708aca 100644 GIT binary patch delta 2118 zcmZ`)2T+sQ7EY*vNCcLaP-G!Nr1+5b5Me0+B7x8p0*F*uK&td6ae>8Wfha#sRyu+q z^iUKK0a5U&Nen6=NL`n(Mj|hvt1J@U+mV^~&)hlRobTN4o^$8^=Zv(18!6ysAwGfB zMguHGlusYbLzes){#^uQ3n}tkjY3{L5`aOFJeMJ4UV#^-h*IOZFsKGW9$MGv5#ynI zMm~G8^2YZeybWWP>O4{aT?U4sS`4tObSd2kJ`hMx5NNSdCWJdq=!k#SEHw*f1Q(nC z;ubDmWr;@o;5oE99(Q}N?&Gtt+B;h-Cl>A;(LweOCMBrSynrL9y;kBfdl771o! z0>2=R)-U5sxPW5vi?_1((7&)w?@p! zXVa+SaopLGD7v&|{hi#j=}Rt^8>~hh-*HdBQO9NYylH%t_oL9K+D5})AhX65O(~@| zBaoYnB(;_domhYC-ty7q*baM1Y-Q|J^>(iRLQdG+I3XF8H{*RS(IM}%AYGH1-epv( zurZC!_%o3Ei}alQ1o~ZhT=%ThDCjrwF7((j>nB-ANWi_Y$JtIAOz7H-W9>@oOSs~o z*sAho$1P3<>ejGF!)LL()4H6%@|ugEgjv0!9(hVtz{|(g{qM`YIH;a@rC6V=hkcy)@;iiQR%s{Gk6kseHVa7b7v=M&h_t6Iw1rQK%y%^%$`OTs84U z((zbnEqQ2*NWN5*>aJFnqM2j%qRQkIsut~+nJUacem%5^gB+|bq}dkI5^5ur57TaR z!&gpOWi}%LblHytkSPI-P<%n2#1CkM7%mMHV51ati{6!l!KuItDW8Wnq`jL`eujo9 zIICa=mYIBZPOgzDcj@P0Nn%O{Yu;BJt;S|bTypu>sUhyV&*Inrff%0nXQfsDdfG-b zrGbQ8YnMi^*Ne5DONG z05NBGUgJxVo!1B_=pIcB4=X9a5r5MW&tm6q9=gF6D6deq-)`!K5Y_4!-M-+}* z=BlYmhX$v6-!)Gl6Au+&o|IWxkYdd%Bt$f-!(5bR`%|8^6pRJO;<9HOy943 zpLfof)aW(Msfob-TPRKxnwBl}jH7!;zF;Zz?XW}U$kmfGvex5QEgBq}Zjwa^Z#&Ce z+&Yz8w8<{L!Op+GTAaHus^ich&Dw%rMk=US&AX*l4lkG0Ee0;42+i}do=c)42^IRu+t*lu zXlqeNu&>%%wZMG(Lx(Qe+}9c6(K+X<=Ty|Sk{p}}pwU)m{Mt7BV(R43Q1XczI(?D< zLXuHIn9CnbUP`{sPLxo=aHv#{4J6f-`T)xyH7n07`TbhBWO1J>QFa;9`LJavV%_HI zwqf81CfM`R35m^4@lDkMlJyuSmb*OhIIdGpZc*=A$2G_bf*btse1&jlxv(m?&yuZb z%%&48585zepr$(XM@+utL};>+vjd6R+)u@In9g#HDtFkD_`EIvYKo|s zr~4BRtU`Qz%ZgdDIobU&#;XUkXrx*A46|o}rC3V2SsUa*Jz&S8QO{7P{f@H*UWC8J zU=A_jQc|aMdk0$0TpWcHMop$fP)dX}uF(yjaWZ)mZ^kB?K=4W$;b4sVLZY|5Sa!tZ1U<}(BFeuYi@0$VS}!~!6OJfdi>fYrI%Yn(F-@Za@=K;Nb!fO0X}cM>Ji#eZ)Weyf>%3J#mZx9_IHvlN-r7JC6c zI0O*qir8OoiEHYA>($%ORp6w6KCBRs=r+KM`3Y~N{{4M1z-;{gNw*aL(|$o8cbQ!G zxcyT$!`(=zaYdNTjsg1Jm6Uhe-v7ED2qXtW?zF>ipYqN!#Q?`J2mtPJKDXM?+AApDcr-96abQNqQy`r^O(UH*lcANtYss6JTXFR0tlL zoYM`0M#5y%3|bk!-R29LYj`%!SpJd(8ZyM%el}A<^a|QJ?w7=F%zO$+pJx zZa_$xBDP1B?;Wu&THc&1RovHfsELbsLWZ%%-;Ip6Me5uaMQv56V_9^DeD-n^FZnp-Gl;Cs}Z!NHJzPCc>KK`)r# zT@dQvUc3n(VM^6%Rxt3G$81ccQ~qG%@nKL))YLsCiT8|ggU5sVghOFz!y#Lku=$@}>Mwqw$SB`{h`-FEbq>##Ob!Oq zWNu9@G&m$v?UtlFgayG5V_IXFQ)8p2vf0jps{600P7zx6N19-j<(*9ul*=LYL1lBH zb>F417X&F83k_R&#C?aEI&U&CIVb?{9-K^|yDlQ%q4C(}O6m0JB<_8)C; zN&U1z@ls_4N_zp;_X^xMEwQLU1+CCJSA6b9YDqs!$L{6+i1jd9#&{X+o!67+{>7}6 z9GMkV`GqC=OmOyhgMSp41H~h6DU2aYL0*DidYWh7Emq~Y*<_&^l0v?f-xxtUkT*mg z+CPGt{hVf|tF?PW$8tkg>}p6Q-M`H+Y5Y+RGO(ye zXufHV6V6*4x!?5K%^eVwo~Clh1KnyyH(PZqhs8azgG=SrHYMllLY>d5H!aoHOG)M9i0u`jbmKz3< zh_yqP-d*fDJ285_@OLBU2Yoe#=@=>#cegzT{p4B8k4c@=nH3WAap8ThBA=IpHfv># zK`xeAUye{KR9$|MtwfGYv3j8-%8oj6^G+*;Q9Egmc_S4&M_vgrT^%KaaNz|Cb9^eB z3+OKLD)E6nQi0)etPy*n&$K(=c9!|%;6{|s?R{ebN)E*j)`QM-GtXy+JdJiAKl}xl z@8BnTIs51E?=SarH>gx)mRQ%#wgX?N&Rj;)!z3#wm#k zN*y1Dc5mfjGXC)?*=AA_}B$m_La zIC9=!RDG0hZGMN+tuir1P4;_Mw3HG+j0=p|_;pbH(!$|C?0SEXyLX%(Gh^9f8F_$7 z{cukM(DO~A`F5uBpWT(L@4 z)0=C{L44>pO0;bP6GRn24<7&qVZG4+1FwOqItu-~69^LM#0$U)&vG+Dslt{FMB5rj zfaI-=fIxP30 zvB5i_*nn;T8dxO4fg#@>Fs8)M3Wa*Hr|%M&@KXh~FMf84f7kd>)C*vos0y6*C;jj0 z8~3+DM4Qy}SAzhp03F@G&nyT;9iqS6NC-rCn<{63MSqp;DW-sc{$Q9T3IcKi_9MQy H?1cOm!W*ub diff --git a/test/images/excel.bmp b/test/images/excel.bmp deleted file mode 100644 index 424619c5c0959c1dd5c9def7f9f1e8eba2dda748..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32824 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 Ze90hT4)0(NqI}AzoXV=a$_5b-06T~siDm!* delta 3890 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
$&v^G;&>v*@l@K3PYd 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 QVbGpvvC;A4y3E}F0ypiKV*mgE diff --git a/test/images/excel.jpg b/test/images/excel.jpg index 67c84f3589ca3d706d6a3362c89b70539f1812a1..49edfefc90d80c1e47b07792e9246ec7813c16b9 100644 GIT binary patch delta 3834 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 FV1mJ!OnU$T literal 8792 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 z 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 ifG7