3

我正在使用 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

4

3 回答 3

2

尝试这个

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();
}
于 2012-12-19T07:45:29.423 回答
2

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

我建议您寻找像 Open Office XML 这样的免费库或像 Aspose 这样的非免费库。

于 2012-12-19T07:49:58.153 回答
0

即使我尝试在我的解决方案中这样做,但是,我认为隐藏文件在隐藏时无法读取。但是一种解决方法(不推荐)是你可以在你从excel表中读取值之前将隐藏的单元格/列隐藏为false。喜欢Worksheetobject.Cells[row,colum].Hidden = false。不建议这样做,但如果您想将其隐藏并访问,则可以使用。

于 2012-12-24T05:49:23.743 回答