Запись данных в ячейки в Excel, C # - PullRequest
5 голосов
/ 03 апреля 2011

чтение из ячеек Excel работает отлично. Но у меня проблемы с записью новых данных в рабочую таблицу 3 и ячейки [8,2]. Как исправить этот код?

Я получаю ошибку:

System.Runtime.InteropServices.COMException: Файл недоступен.

Но я могу читать из этого файла, используя другую кнопку.

xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(3);

// range = xlWorkSheet.UsedRange;

//  Object[,] saRet;
//  saRet = (System.Object[,])range.get_Value(Missing.Value);

xlWorkSheet.Cells[8, 2] = "Salary";

xlWorkBook.Close(true, null, null);
xlApp.Quit();

releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);

Ответы [ 5 ]

5 голосов
/ 11 июня 2015

То, как я устанавливаю содержимое ячейки, выглядит следующим образом:

 xlWorkSheet.Cells[8, 2].Value = "Salary";

Я использую Excel 2010.

1 голос
/ 03 апреля 2011

Нельзя установить диапазон для строки:

xlWorkSheet.Cells[8, 2] = "Salary"; 

Попробуйте что-то вроде:

xlRange = (Excel.Range) xlWorkSheet.Cells[8, 2];
xlRange.Value = "Salary";
0 голосов
/ 30 января 2017

Посмотрите на эту строку в вашем коде:

xlWorkBook = xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

Третий параметр определяет, что ваш файл должен быть открыт только для чтения.Вы устанавливаете его в true, что означает, что вы не можете изменить свой файл.Я думаю, именно поэтому у вас есть ошибка "файл недоступен".

0 голосов
/ 26 сентября 2016

Вы открываете файл Excel в режиме только для чтения.

xlApp.Workbooks.Open("C:\\Base.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

И вы устанавливаете для редактирования значение false.Это, вероятно, причина, по которой вы не можете редактировать файл ...

xlApp.Workbooks.Open("C:\\Base.xls", 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", true, false, 0, true, 1, 0);
0 голосов
/ 09 декабря 2014

Ваш код в порядке. Проблема может быть с файлом.

Открыть файл в Excel. Вы видите какое-либо сообщение о защите от записи? Убедитесь, что вы можете вручную изменить его содержимое и сохранить файл. Дай попробовать.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...