我试图创建一个简单的函数来将切片值附加到创建的 csv 文件的下一列。目的是在 test.csv 中有这种风格
|A 栏 |B 栏|
|标题1 |标题2|
|第一价值| 第二值 |
(抱歉格式错误,但是一旦生成了 text.csv,如果我们打开 text.csv 文件,我们的想法是在“FIRSTVALUE”之后的下一列中放置“SECONDVALUE”(如上图).. 每次调用该函数时,它都会在同一行的上一列之后继续附加下一个值)。
这就是我得到的结果,但是它是将 SECONDVALUE 直接附加到 FIRSTVALUE 的同一列上。。(所以我得到的是 "|FIRSTVALUE | SECONDVALUE" ,而不是 "|FIRSTVALUESECONDVALUE|" )
package main
import (
"encoding/csv"
"fmt"
"os"
"strings"
)
func main() {
callfunc()
}
func callfunc() int {
testval1 := []string{"FIRST VALUE"}
test(testval1, "test.csv", 1)
testval2 := []string{"SECOND VALUE"}
test(testval2, "test.csv", 0) //I want this to be added to the column next to first value
return 1
}
func test(lines []string, path string, header int) {
var hdr = []string{"header1", "header2"}
fmt.Println("inside the method..\n")
file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY, 0600)
if err != nil {
if file, err = os.Create(path); err != nil {
return
}
}
defer file.Close()
writer := csv.NewWriter(file)
if header == 1 {
returnError := writer.Write(hdr)
if returnError != nil {
fmt.Println(returnError)
}
}
writer.Flush()
for _, value := range lines {
_, err := file.WriteString(strings.TrimSpace(value))
if err != nil { //exception handler
fmt.Println(err)
break
}
}
writer.Flush()
}
如何修复上面的代码行,使“SECONDVALUE”是第二列,而不是在“FIRSTVALUE”所在的同一列。