gpt4 book ai didi

ExcelDataReader 更改列名称

转载 作者:行者123 更新时间:2023-12-04 22:18:45 25 4
gpt4 key购买 nike

我正在使用 ExcelDataReader 读取 Excel 文件

Dim entireExcel As DataTableCollection

Using ofd As OpenFileDialog = New OpenFileDialog() With {.Filter = "Excel Workbook|*.xlsx|Excel 97-2003 Workbook|*.xls"}
If ofd.ShowDialog() = DialogResult.OK Then
txtFileName.Text = ofd.FileName

Using stream = File.OpenRead(ofd.FileName)
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance)
Dim reader As IExcelDataReader = ExcelReaderFactory.CreateReader(stream)
entireExcel = reader.AsDataSet(New ExcelDataSetConfiguration() With {
.ConfigureDataTable = Function(__) New ExcelDataTableConfiguration() With {
.UseHeaderRow = True}}).Tables
End Using
End If
End Using
一切正常,但有一个异常(exception):工作表中的列名不是 Excel 中的真实列名。如果该列是左侧列的副本,则会在名称中添加 _1、_2 等。如果缺少列名,则创建名称 Column0、Column1、Column2 等。
如何获得真实姓名,或者如何防止更改它们?

最佳答案

这种行为的原因是 DataSet 的实现抛出了 DuplicateNameException如果您尝试设置重复的列名 [1]。 ExcelDataReader 通过为您生成唯一名称来解决此问题。
您需要根据您的情况找到解决方法。 F.ex 集 UseHeaderRow为 false 并从数据中手动读取列名。或者不要使用 AsDataSet()完全没有,而是依靠读者的Read()/GetValue()/GetXXX()方法。
[1] https://docs.microsoft.com/en-us/dotnet/api/system.data.datacolumn.columnname

关于ExcelDataReader 更改列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66323922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com