(ClosedXML The header row contains more than one field name)
サーバ側でExcelファイルを操作必要があり、MSExcelを使うまでもないことなので、ClosedXMLを使用してXLSXファイルを読み書きしてたら突如なぞの例外発生
特定のファイルを開くときにエラーになっているもよう
System.ArgumentException はハンドルされませんでした。 HResult=-2147024809 Message=The header row contains more than one field name '0'. Source=ClosedXML StackTrace: 場所 ClosedXML.Excel.XLTable.get_FieldNames() 場所 ClosedXML.Excel.XLTable.HeadersRow() 場所 ClosedXML.Excel.XLTable.InitializeValues(Boolean setAutofilter) 場所 ClosedXML.Excel.XLTable..ctor(XLRange range, String name, Boolean addToTables, Boolean setAutofilter) 場所 ClosedXML.Excel.XLRange.CreateTable(String name, Boolean setAutofilter) 場所 ClosedXML.Excel.XLWorkbook.LoadSpreadsheetDocument(SpreadsheetDocument dSpreadsheet) 場所 ClosedXML.Excel.XLWorkbook.LoadSheets(String fileName) 場所 ClosedXML.Excel.XLWorkbook.Load(String file) 場所 ClosedXML.Excel.XLWorkbook..ctor(String file, XLEventTracking eventTracking) 場所 ClosedXML.Excel.XLWorkbook..ctor(String file) 場所 ConsoleApplication3.Program.Main(String[] args) 場所 C:\UserFiles\VisualStudioProject\2012\TestSln2013\ConsoleApplication3\Program.cs:行 17 場所 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 場所 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 場所 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 場所 System.Threading.ThreadHelper.ThreadStart_Context(Object state) 場所 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 場所 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 場所 System.Threading.ThreadHelper.ThreadStart() InnerException:
はて
(∩; -`д-´)∩
こんなExcelファイル(イメージ)
環境
ClosedXML | 0.76.0.0 |
---|---|
DocumentFormat.OpenXml | 2.5.5631.0 |
.Net | 4.5.1 |
原因
シートの中に表が設定されています。
※水色のストライプの綺麗な表
表が設定されている状態で、ヘッダ行が追加されていなかったので該当の例外が発生していました。
対処
ヘッダ行追加もしくは、表の解除
ちなみにエラーメッセージをぐぐってGitHubのソースに行き着いて原因がわかりました。
gHowlComponents/XLTable.cs at master · gHowl/gHowlComponents · GitHub