
关于go读取xml中worksheet的问题
为了正确提取excel中worksheet结构内的数据,可以使用标准库encoding/xml进行解析。解析的具体步骤如下:
package main
import (
"encoding/xml"
"fmt"
)
type Workbook struct {
XMLName xml.Name `xml:"Workbook"`
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
O string `xml:"o,attr"`
X string `xml:"x,attr"`
Ss string `xml:"ss,attr"`
Html string `xml:"html,attr"`
DocumentProperties DocumentProperties `xml:"DocumentProperties"`
OfficeDocumentSettings OfficeDocumentSettings `xml:"OfficeDocumentSettings"`
ExcelWorkbook ExcelWorkbook `xml:"ExcelWorkbook"`
Styles Styles `xml:"Styles"`
Worksheet Worksheet `xml:"Worksheet"`
}
type DocumentProperties struct {
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
Author struct {
Text string `xml:",chardata"`
} `xml:"Author"`
LastAuthor struct {
Text string `xml:",chardata"`
} `xml:"LastAuthor"`
Created struct {
Text string `xml:",chardata"`
} `xml:"Created"`
LastSaved struct {
Text string `xml:",chardata"`
} `xml:"LastSaved"`
Version struct {
Text string `xml:",chardata"`
} `xml:"Version"`
}
type OfficeDocumentSettings struct {
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
AllowPNG struct {
Text string `xml:",chardata"`
} `xml:"AllowPNG"`
}
type ExcelWorkbook struct {
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
WindowHeight struct {
Text string `xml:",chardata"`
} `xml:"WindowHeight"`
WindowWidth struct {
Text string `xml:",chardata"`
} `xml:"WindowWidth"`
WindowTopX struct {
Text string `xml:",chardata"`
} `xml:"WindowTopX"`
WindowTopY struct {
Text string `xml:",chardata"`
} `xml:"WindowTopY"`
ProtectStructure struct {
Text string `xml:",chardata"`
} `xml:"ProtectStructure"`
ProtectWindows struct {
Text string `xml:",chardata"`
} `xml:"ProtectWindows"`
}
type Styles struct {
Text string `xml:",chardata"`
Style []struct {
Text string `xml:",chardata"`
ID string `xml:"ID,attr"`
Name string `xml:"Name,attr"`
Parent string `xml:"Parent,attr"`
Alignment struct {
Text string `xml:",chardata"`
Vertical string `xml:"Vertical,attr"`
Horizontal string `xml:"Horizontal,attr"`
} `xml:"Alignment"`
Borders struct {
Text string `xml:",chardata"`
} `xml:"Borders"`
Font struct {
Text string `xml:",chardata"`
FontName string `xml:"FontName,attr"`
CharSet string `xml:"CharSet,attr"`
Size string `xml:"Size,attr"`
Color string `xml:"Color,attr"`
} `xml:"Font"`
Interior struct {
Text string `xml:",chardata"`
Color string `xml:"Color,attr"`
Pattern string `xml:"Pattern,attr"`
} `xml:"Interior"`
NumberFormat struct {
Text string `xml:",chardata"`
Format string `xml:"Format,attr"`
} `xml:"NumberFormat"`
Protection struct {
Text string `xml:",chardata"`
Protected string `xml:"Protected,attr"`
} `xml:"Protection"`
} `xml:"Style"`
}
type Worksheet struct {
Text string `xml:",chardata"`
Name string `xml:"Name,attr"`
Table struct {
Text string `xml:",chardata"`
ExpandedColumnCount string `xml:"ExpandedColumnCount,attr"`
ExpandedRowCount string `xml:"ExpandedRowCount,attr"`
FullColumns string `xml:"FullColumns,attr"`
FullRows string `xml:"FullRows,attr"`
DefaultColumnWidth string `xml:"DefaultColumnWidth,attr"`
DefaultRowHeight string `xml:"DefaultRowHeight,attr"`
Column []struct {
Text string `xml:",chardata"`
StyleID string `xml:"StyleID,attr"`
Width string `xml:"Width,attr"`
Span string `xml:"Span,attr"`
Index string `xml:"Index,attr"`
} `xml:"Column"`
Row []struct {
Text string `xml:",chardata"`
AutoFitHeight string `xml:"AutoFitHeight,attr"`
StyleID string `xml:"StyleID,attr"`
Cell []struct {
Text string `xml:",chardata"`
StyleID string `xml:"StyleID,attr"`
Data struct {
Text string `xml:",chardata"`
Type string `xml:"Type,attr"`
} `xml:"Data"`
} `xml:"Cell"`
} `xml:"Row"`
} `xml:"Table"`
WorksheetOptions struct {
Text string `xml:",chardata"`
Xmlns string `xml:"xmlns,attr"`
PageSetup struct {
Text string `xml:",chardata"`
Header struct {
Text string `xml:",chardata"`
Margin string `xml:"Margin,attr"`
} `xml:"Header"`
Footer struct {
Text string `xml:",chardata"`
Margin string `xml:"Margin,attr"`
} `xml:"Footer"`
PageMargins struct {
Text string `xml:",chardata"`
Bottom string `xml:"Bottom,attr"`
Left string `xml:"Left,attr"`
Right string `xml:"Right,attr"`
Top string `xml:"Top,attr"`
} `xml:"PageMargins"`
} `xml:"PageSetup"`
Unsynced struct {
Text string `xml:",chardata"`
} `xml:"Unsynced"`
Print struct {
Text string `xml:",chardata"`
ValidPrinterInfo struct {
Text string `xml:",chardata"`
} `xml:"ValidPrinterInfo"`
PaperSizeIndex struct {
Text string `xml:",chardata"`
} `xml:"PaperSizeIndex"`
HorizontalResolution struct {
Text string `xml:",chardata"`
} `xml:"HorizontalResolution"`
VerticalResolution struct {
Text string `xml:",chardata"`
} `xml:"VerticalResolution"`
} `xml:"Print"`
Selected struct {
Text string `xml:",chardata"`
} `xml:"Selected"`
Panes struct {
Text string `xml:",chardata"`
Pane struct {
Text string `xml:",chardata"`
Number struct {
Text string `xml:",chardata"`
} `xml:"Number"`
ActiveRow struct {
Text string `xml:",chardata"`
} `xml:"ActiveRow"`
ActiveCol struct {
Text string `xml:",chardata"`
} `xml:"ActiveCol"`
} `xml:"Pane"`
} `xml:"Panes"`
ProtectObjects struct {
Text string `xml:",chardata"`
} `xml:"ProtectObjects"`
ProtectScenarios struct {
Text string `xml:",chardata"`
} `xml:"ProtectScenarios"`
} `xml:"WorksheetOptions"`
}
func main() {
var book Workbook
err := xml.Unmarshal([]byte(xmldata), &book)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(book.Worksheet.Table.Row)
}
var xmldata = `
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"以上就是如何使用Go语言解析XML数据并提取Excel Worksheet中的数据?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号