本篇文章将详细介绍如何使用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))