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 }