5

Excelでデータを変更して保存しようとしています。以下のコードでは、シートにアクセスして変更を行い、ファイルを保存しています。ファイルを保存できません。これが私のコードです:

Application excel = new Application();
        excel.Visible=true;
        Workbook wb = (Workbook)excel.Workbooks.Open(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
        Worksheet ws = (Worksheet)wb.Worksheets[1];
        ws.Cells[1, 1] = "sagar";
        ws.Cells[2, 1] = "sagar";
        ws.Cells[3, 1] = "sagar";
        wb.Save();
        wb.close();

「'BookExcel1.xlsx' という名前のファイルは既にこの場所に存在します。置き換えますか?」というエラーが表示されます。

そこで、コードを次のように変更しました。

Workbook wb = (Workbook)excel.Workbooks.Open(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx",0, false, 5, "", "",
            false, XlPlatform.xlWindows, "", true, false,
            0, true, false, false););

エラーは次のとおりです。「BookExcel1.xlsx は user_name.open によって読み取り専用として変更されています」。「キャンセル」ボタンをクリックすると、上記の「HRESULT からの例外: 0x800A03EC」という例外が発生します。

私も試しました:

wb.SaveAs(@"C:\Users\dnyanesh.wagh\Desktop\BookExcel1.xlsx");
wb.Close(true,null,null);

そこから、上記のファイルに変更が表示された同じエラーが表示されます。

ファイルを変更して保存する方法を誰か教えてもらえますか?

4

3 に答える 3

0

この問題は、.xlsx ではなく下位互換シート (.xls) で発生します。

Office 2007 より前のバージョンでシートを開くには、65,000 行を超えるシートを含めることはできません。一番下に到達するまで ctrl+arrowdown を使用して、シートの行数を確認できます。その行数よりも大きい範囲を取得しようとすると、エラーが発生します

于 2013-08-27T12:44:08.477 に答える