最近和师傅在一起做一个公司内部的系统,可是今天遇到了一个问题,下午师傅弄了很久最后也没能成功。当然 这个不能怪师傅,这不是技术问题,而是出现的问题太诡异了。
我在网上找了许多资料 还是没能够解决,往大家能回答。using (OleDbExcelReader rdr = new OleDbExcelReader(FullExcelFileName))
{
foreach (OleDbExcelWorksheet ws in rdr.Worksheets)
{
System.Diagnostics.Debug.Write( ws.Name);
}
//OleDbExcelWorksheet wsheet = rdr.Worksheets["Sheet1"];
OleDbExcelWorksheet wsheet = rdr.Worksheets["Sheet1"];
uint columnCount = XmlUtility.GetColumnCount(FullSchemaName);
IEnumerable<XElement> columnDefinitions = XmlUtility.GetColumnDefinitions(FullSchemaName);
int column =1;
string index, caption;
foreach (var columnDefinition in columnDefinitions)
{
index = columnDefinition.Attributes("Index").FirstOrDefault().Value;
if (!index.Equals(column))
{
OnColumnDefinitionValidation(new ColumnDefinitionEventArgs(int.Parse(index), column));
}
caption = columnDefinition.Attributes("Caption").FirstOrDefault().Value;
if (!wsheet.Cells[0, (uint)column].Value.ToString().Equals(caption))
{
OnColumnDefinitionValidation(new ColumnDefinitionEventArgs(caption, wsheet.Cells[0, (uint)column].Value.ToString()));
}
column++;
}
}上面加粗和变色那个就是出错的问题所在。
然后提示的问题是:
'Sheet1$'' is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long.
我在网上找了许多资料 还是没能够解决,往大家能回答。using (OleDbExcelReader rdr = new OleDbExcelReader(FullExcelFileName))
{
foreach (OleDbExcelWorksheet ws in rdr.Worksheets)
{
System.Diagnostics.Debug.Write( ws.Name);
}
//OleDbExcelWorksheet wsheet = rdr.Worksheets["Sheet1"];
OleDbExcelWorksheet wsheet = rdr.Worksheets["Sheet1"];
uint columnCount = XmlUtility.GetColumnCount(FullSchemaName);
IEnumerable<XElement> columnDefinitions = XmlUtility.GetColumnDefinitions(FullSchemaName);
int column =1;
string index, caption;
foreach (var columnDefinition in columnDefinitions)
{
index = columnDefinition.Attributes("Index").FirstOrDefault().Value;
if (!index.Equals(column))
{
OnColumnDefinitionValidation(new ColumnDefinitionEventArgs(int.Parse(index), column));
}
caption = columnDefinition.Attributes("Caption").FirstOrDefault().Value;
if (!wsheet.Cells[0, (uint)column].Value.ToString().Equals(caption))
{
OnColumnDefinitionValidation(new ColumnDefinitionEventArgs(caption, wsheet.Cells[0, (uint)column].Value.ToString()));
}
column++;
}
}上面加粗和变色那个就是出错的问题所在。
然后提示的问题是:
'Sheet1$'' is not a valid name. Make sure that it does not include invalid characters or punctuation and that it is not too long.
sheet页的名字错了?
可能区分大小写吧
改用sheet1试试
总之这个错误像是sheet页名称问题
当一个EXCEL文件有多个SHEET表,我的也是出现这样的情况。
=> OleDbExcelWorksheet wsheet = rdr.Worksheets["Sheet1$"];
顶这个,对于excel貌似就要加上"$"