Skip to content

Commit 9f86230

Browse files
committed
Optimize code, fix golint issues
1 parent e77c462 commit 9f86230

File tree

3 files changed

+22
-19
lines changed

3 files changed

+22
-19
lines changed

adjust_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,13 @@ func TestAdjustCalcChain(t *testing.T) {
104104

105105
func TestCoordinatesToAreaRef(t *testing.T) {
106106
f := NewFile()
107-
ref, err := f.coordinatesToAreaRef([]int{})
107+
_, err := f.coordinatesToAreaRef([]int{})
108108
assert.EqualError(t, err, "coordinates length must be 4")
109-
ref, err = f.coordinatesToAreaRef([]int{1, -1, 1, 1})
109+
_, err = f.coordinatesToAreaRef([]int{1, -1, 1, 1})
110110
assert.EqualError(t, err, "invalid cell coordinates [1, -1]")
111-
ref, err = f.coordinatesToAreaRef([]int{1, 1, 1, -1})
111+
_, err = f.coordinatesToAreaRef([]int{1, 1, 1, -1})
112112
assert.EqualError(t, err, "invalid cell coordinates [1, -1]")
113-
ref, err = f.coordinatesToAreaRef([]int{1, 1, 1, 1})
113+
ref, err := f.coordinatesToAreaRef([]int{1, 1, 1, 1})
114114
assert.NoError(t, err)
115115
assert.EqualValues(t, ref, "A1:A1")
116116
}

picture.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -499,26 +499,33 @@ func (f *File) getSheetRelationshipsTargetByID(sheet, rID string) string {
499499
func (f *File) GetPicture(sheet, cell string) (string, []byte, error) {
500500
col, row, err := CellNameToCoordinates(cell)
501501
if err != nil {
502-
return "", []byte{}, err
502+
return "", nil, err
503503
}
504504
col--
505505
row--
506506
xlsx, err := f.workSheetReader(sheet)
507507
if err != nil {
508-
return "", []byte{}, err
508+
return "", nil, err
509509
}
510510
if xlsx.Drawing == nil {
511-
return "", []byte{}, err
511+
return "", nil, err
512512
}
513-
514513
target := f.getSheetRelationshipsTargetByID(sheet, xlsx.Drawing.RID)
515514
drawingXML := strings.Replace(target, "..", "xl", -1)
516-
515+
_, ok := f.XLSX[drawingXML]
516+
if !ok {
517+
return "", nil, err
518+
}
517519
drawingRelationships := strings.Replace(
518520
strings.Replace(target, "../drawings", "xl/drawings/_rels", -1), ".xml", ".xml.rels", -1)
519521

520-
wsDr, _ := f.drawingParser(drawingXML)
522+
return f.getPicture(row, col, drawingXML, drawingRelationships)
523+
}
521524

525+
// getPicture provides a function to get picture base name and raw content
526+
// embed in XLSX by given coordinates and drawing relationships.
527+
func (f *File) getPicture(row, col int, drawingXML, drawingRelationships string) (string, []byte, error) {
528+
wsDr, _ := f.drawingParser(drawingXML)
522529
for _, anchor := range wsDr.TwoCellAnchor {
523530
if anchor.From != nil && anchor.Pic != nil {
524531
if anchor.From.Col == col && anchor.From.Row == row {
@@ -528,16 +535,12 @@ func (f *File) GetPicture(sheet, cell string) (string, []byte, error) {
528535
if ok {
529536
return filepath.Base(xlsxWorkbookRelation.Target),
530537
[]byte(f.XLSX[strings.Replace(xlsxWorkbookRelation.Target,
531-
"..", "xl", -1)]), err
538+
"..", "xl", -1)]), nil
532539
}
533540
}
534541
}
535542
}
536543

537-
_, ok := f.XLSX[drawingXML]
538-
if !ok {
539-
return "", nil, err
540-
}
541544
decodeWsDr := decodeWsDr{}
542545
_ = xml.Unmarshal(namespaceStrictToTransitional(f.readXML(drawingXML)), &decodeWsDr)
543546
for _, anchor := range decodeWsDr.TwoCellAnchor {
@@ -548,12 +551,12 @@ func (f *File) GetPicture(sheet, cell string) (string, []byte, error) {
548551
xlsxWorkbookRelation := f.getDrawingRelationships(drawingRelationships, decodeTwoCellAnchor.Pic.BlipFill.Blip.Embed)
549552
_, ok := supportImageTypes[filepath.Ext(xlsxWorkbookRelation.Target)]
550553
if ok {
551-
return filepath.Base(xlsxWorkbookRelation.Target), []byte(f.XLSX[strings.Replace(xlsxWorkbookRelation.Target, "..", "xl", -1)]), err
554+
return filepath.Base(xlsxWorkbookRelation.Target), []byte(f.XLSX[strings.Replace(xlsxWorkbookRelation.Target, "..", "xl", -1)]), nil
552555
}
553556
}
554557
}
555558
}
556-
return "", []byte{}, err
559+
return "", nil, nil
557560
}
558561

559562
// getDrawingRelationships provides a function to get drawing relationships

rows.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
// GetRows return all the rows in a sheet by given worksheet name (case
2222
// sensitive). For example:
2323
//
24-
// rows, err := f.GetRows("Sheet1")
24+
// rows, err := f.GetRows("Sheet1")
2525
// for _, row := range rows {
2626
// for _, colCell := range row {
2727
// fmt.Print(colCell, "\t")
@@ -160,7 +160,7 @@ func (err ErrSheetNotExist) Error() string {
160160
//
161161
// rows, err := f.Rows("Sheet1")
162162
// for rows.Next() {
163-
// row, err := rows.Columns()
163+
// row, err := rows.Columns()
164164
// for _, colCell := range row {
165165
// fmt.Print(colCell, "\t")
166166
// }

0 commit comments

Comments
 (0)