C#: Как получить доступ к ячейке Excel?

Я не рассматриваю это как недокументированную функцию, а скорее как присущую дизайну существующих функций.

Строка двойной кавычки ("...") интерполирует выражения вида {...} как код. Так что это просто работает.

Цитата q, по умолчанию, похожа на одиночную строку цитаты ('...'). Таким образом, по умолчанию он не интерполирует выражения вида {...}. Но если вы добавите наречие c, тогда действительно интерполирует эти блоки c од, поэтому то же самое, что по умолчанию работает в строках с двойными кавычками, работает и с q:c.

Или, может быть, Я что-то упустил. Мы, кажется, грубо дополняем наши слепоты. Вместе у нас может быть видение 50/50, что бы это ни значило. :)

20
задан Peter Mortensen 29 March 2010 в 19:51
поделиться

5 ответов

<забастовка>, При попытке автоматизировать Excel, Вы, вероятно, не должна открытие документ Word и использовать автоматизацию Word ;)

Проверяют это, это должно запустить Вас,

http://www.codeproject.com/KB/office/package.aspx

И здесь является некоторым кодом. Это взято из части моего кода и имеет много удаленного материала, таким образом, это ничего не делает и не может скомпилировать или работать точно, но это должно получить Вас движение. Это ориентировано к чтению, но должно указать на Вас в правильном направлении.

Microsoft.Office.Interop.Excel.Worksheet sheet = newWorkbook.ActiveSheet;

if ( sheet != null )
{
    Microsoft.Office.Interop.Excel.Range range = sheet.UsedRange;
    if ( range != null )
    {
        int nRows = usedRange.Rows.Count;
        int nCols = usedRange.Columns.Count;
        foreach ( Microsoft.Office.Interop.Excel.Range row in usedRange.Rows )
        {
            string value = row.Cells[0].FormattedValue as string;
        }
    }
 }

можно также сделать

Microsoft.Office.Interop.Excel.Sheets sheets = newWorkbook.ExcelSheets;

if ( sheets != null )
{
     foreach ( Microsoft.Office.Interop.Excel.Worksheet sheet in sheets )
     {
          // Do Stuff
     }
}

И если необходимо вставить строки/столбцы

// Inserts a new row at the beginning of the sheet
Microsoft.Office.Interop.Excel.Range a1 = sheet.get_Range( "A1", Type.Missing );
a1.EntireRow.Insert( Microsoft.Office.Interop.Excel.XlInsertShiftDirection.xlShiftDown, Type.Missing );
20
ответ дан 30 November 2019 в 00:44
поделиться

Я думаю, что необходимо объявить связанный лист!

Попытка что-то вроде этого

objsheet(1).Cells[i,j].Value;
3
ответ дан 30 November 2019 в 00:44
поделиться

Как я работаю для автоматизации Office / Excel:

  1. Запись макрос, это генерирует шаблон VBA
  2. Редактирование шаблон VBA, таким образом, это будет соответствовать моим потребностям
  3. , Преобразовывают в VB.Net (Небольшой шаг для мужчин)
  4. Отпуск это в VB.Net, Намного более легком как выполнение его с помощью C#
1
ответ дан 30 November 2019 в 00:44
поделиться

Попробуйте:

Excel.Application oXL;
Excel._Workbook oWB;
Excel._Worksheet oSheet;
Excel.Range oRng;

oXL = new Excel.Application();
oXL.Visible = true;
oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));

oSheet = (Excel._Worksheet)oWB.Worksheets;
oSheet.Activate();

oSheet.Cells[3, 9] = "Some Text"
1
ответ дан 30 November 2019 в 00:44
поделиться

Просто.

Чтобы открыть рабочую книгу. Используйте xlapp.workbooks.Open ()

, где вы уже объявили и установили XLAPP так. Excel.Application XLAPP = Новый Excel.applicaton ();

Параметры верны.

Далее убедитесь, что вы используете значение свойства2 при назначении значения к ячейке с использованием свойства ячеек или объекта диапазона.

1
ответ дан 30 November 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: