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; 

                }}

エクセルシートに列が隠されています。そのセルを反復処理すると、次のようになり""ます。そのセルの値を取得するために何をすべきかわかりません。

ありがとう

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

ここに。Office が不安定な動作を示したり、/または、この環境で Office を実行するとデッドロックが発生します。

Open Office XML のような無料のライブラリか、Aspose のような無料ではないライブラリを探すことをお勧めします。

于 2012-12-19T07:49:58.153 に答える
0

私も自分のソリューションでこれを試してみましたが、非表示のファイルは非表示にすると読み取れないと思います。しかし、回避策の 1 つ (推奨されません) は、Excel シートから値を読み取る直前に、非表示のセル/列を false に非表示にすることです。のようにWorksheetobject.Cells[row,colum].Hidden = false。これはお勧めしませんが、非表示にしてアクセスしたい場合に機能します。

于 2012-12-24T05:49:23.743 に答える