如何使用c#访问excel中的隐藏列

我正在使用Excel.Interop

这是遍历Excel单元格的代码:

for(i=1 ; i< 10; i++) { for (int j = 1; j < 10; j++) // 10 is no of columns(static) { oRng = (Microsoft.Office.Interop.Excel.Range)oSheet.Cells[i + 1, j+1]; // getting value here(its "") string strValue = oRng.Text.ToString(); dr[j - 1] = strValue; }} 

我有一个隐藏在excel表单中的列,当我遍历该单元格时,我正在"" 。 我不知道为了获得这个单元的价值应该做些什么。

谢谢

PS:这里使用的dr是一个DataRow ,我进一步将其存储在DataSet

这里 Microsoft目前不推荐并不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或在此环境中运行Office时发生死锁。

我build议你去找一个像Open Office XML这样的免费图书馆,或者像Aspose这样的免费图书馆。

尝试这个

 Public string gethiddenexcellcolumns() { Excel.Application excel = New Excel.Application(); excel.Visible = True; excel.Workbooks.Add(); excel.Columns("C:C").Select(); excel.Selection.EntireColumn.Hidden = True; var columns = excel.Columns; bool hasHiddenColumns = false; foreach(column in columns) { If(column.Hidden==true) { hasHiddenColumns = true } } return "excel.Columns.Hidden = " + hasHiddenColumns.ToString(); } 

即使我在我的解决scheme中尝试这样做,但是,我认为隐藏的文件不能在隐藏时被读取。 但有一个解决办法(不推荐)是你可以在隐藏的单元格/列隐藏到错误之前,你是从Excel表中读取值。 像Worksheetobject.Cells[row,colum].Hidden = false 。 这不build议,但如果你想隐藏和访问的作品。