35 lines
765 B
Go
35 lines
765 B
Go
package export
|
|
|
|
type ExcelExporter struct {
|
|
mFetcher DataFetcher
|
|
file FileAdapter
|
|
}
|
|
|
|
func NewExcelExporter(fetcher DataFetcher, file FileAdapter) DataExporter {
|
|
return &ExcelExporter{
|
|
mFetcher: fetcher,
|
|
file: file,
|
|
}
|
|
}
|
|
|
|
func (ee *ExcelExporter) Fetcher(fetcher DataFetcher) {
|
|
ee.mFetcher = fetcher
|
|
}
|
|
|
|
func (ee *ExcelExporter) File(file FileAdapter) {
|
|
ee.file = file
|
|
}
|
|
|
|
func (ee *ExcelExporter) Export(sql string) error {
|
|
rows := ee.mFetcher.Fetch(sql)
|
|
//fmt.Printf("Excel Exporter.Excel, got %v rows\n", len(rows))
|
|
ee.file.Open()
|
|
ee.file.WriteTitle([]string{"字段1", "字段2", "字段3", "字段4", "字段5"})
|
|
for _, v := range rows {
|
|
// fmt.Printf(" 行号: %d 值: %s\n", i+1, v)
|
|
ee.file.Write(v)
|
|
}
|
|
ee.file.Close()
|
|
return nil
|
|
}
|