36 lines
734 B
Go
36 lines
734 B
Go
package excel
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
type row struct {
|
|
ID int
|
|
Name string
|
|
}
|
|
|
|
func TestExportToWriterResetsFile(t *testing.T) {
|
|
ex := NewExcel()
|
|
cols := []ExportColumn{
|
|
{Header: "ID", Field: "ID"},
|
|
{Header: "Name", Field: "Name"},
|
|
}
|
|
data := []row{{ID: 1, Name: "a"}, {ID: 2, Name: "b"}}
|
|
|
|
var buf1, buf2 bytes.Buffer
|
|
if err := ex.ExportToWriter(&buf1, "S1", cols, data); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := ex.ExportToWriter(&buf2, "S1", cols, data); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if buf1.Len() == 0 || buf2.Len() == 0 {
|
|
t.Fatal("expected non-empty xlsx output")
|
|
}
|
|
// 导出后不应残留内部文件句柄
|
|
if ex.file != nil {
|
|
t.Fatal("internal file should be cleared after ExportToWriter")
|
|
}
|
|
}
|