本篇文章将详细介绍如何使用Golang进行Excel的读写操作,主要包括Excel读取、Excel写入及库的安装等内容。由于Excel是应用非常广泛的数据处理软件,这篇文章介绍使用go-ole库对日常数据处理工作加以介绍。
一、go get go-ole库

go get github.com/go-ole/go-ole

二、示例代码

	filepath := `d:\sample.xlsx`

	ole.CoInitialize(0)
	defer ole.CoUninitialize()
	unknown, _ := oleutil.CreateObject("Excel.Application")
	defer unknown.Release()
	excel, _ := unknown.QueryInterface(ole.IID_IDispatch)
	defer excel.Release()
	oleutil.PutProperty(excel, "Visible", true)
	workbooks := oleutil.MustGetProperty(excel, "Workbooks").ToIDispatch()
	defer workbooks.Release()
	workbook := oleutil.MustCallMethod(workbooks, "Open", filepath).ToIDispatch()
	defer workbook.Release()
	//workbook := oleutil.MustCallMethod(workbooks, "Add", nil).ToIDispatch()
	worksheet := oleutil.MustGetProperty(workbook, "Worksheets", 1).ToIDispatch()
	defer worksheet.Release()
	cell := oleutil.MustGetProperty(worksheet, "Cells", 1, 1).ToIDispatch()
	defer cell.Release()
	//oleutil.PutProperty(cell, "Value", 12345)
	//val := oleutil.MustGetProperty(cell, "Value").ToIDispatch()
	val, err := oleutil.GetProperty(cell, "Value")
	if err != nil {
		fmt.Println(err)
	}

	fmt.Printf("%+v\n", val)
	fmt.Printf("%+v\n", string(val.Val))