Указать адрес ячейки Excel цифровыми координатами, а не буквенными - C#

Узнай цену своей работы

Формулировка задачи:

Открываю или создаю, если нету, файл Excel и забиваю в него данные. ​*
private void WriteDataInExcel()
        {
            DateTime ThisDay = DateTime.Today;                              // узнаем дату
            listBox1.Items.Add(ThisDay.ToString("d").Replace("/", "-"));
            String filename = ThisDay.ToString("d").Replace("/", "-");
            bool MakeNew = false;
            Excel.Application exc = new Microsoft.Office.Interop.Excel.Application();
            Excel.Workbook wb;
            Excel.Worksheet wsh;
            Excel.Range rng;    // RCells;
            exc.Visible = false;                                            // скрываем Excel
            object misValue = System.Reflection.Missing.Value;
 
            if (exc == null)
            {
                MessageBox.Show("Excel is not properly installed! /n Excel не установлен!");
                return;
            }
            try
            {
                wb = exc.Workbooks.Open("F:\\Programming\\Programmable_DC\\GwInStek\\Progs\\Mine5\\" + filename + ".xls");
            }
            catch
            {
                try
                {
                    wb = exc.Workbooks.Add(misValue);
                    MakeNew = true;
                }
                catch
                {
                    MessageBox.Show(                    // Выводим сообщение
                    "Something is wrong with Excel",
                    "ERROR!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Question,
                    MessageBoxDefaultButton.Button1);
                    exc.Quit();
                    return;
                }
            }
            wsh = (Excel.Worksheet)wb.Worksheets.get_Item(1);
          //  wsh = wb.Worksheets[1];
            rng = wsh.UsedRange;
            wsh.Cells[1, 1] = "№";
       //     RCells = wsh.get_Range(A1,rng.Columns.Count);
       //     RCells.Merge(Type.Missing);
            for (int i = 0; i <= MesCount; i++)
            {
                wsh.Cells[1, i + 2] = i + 1;
                int NR = 0;
                String stRD = "";
                for (int j = 0; j < LblCurRes[i].Text.Length; j++)
                    if (LblCurRes[i].Text[j] == 'R')
                    {
                        NR = j;
                        break;
                    }
                for (int j = NR + 4; j < LblCurRes[i].Text.Length; j++)
                    stRD += LblCurRes[i].Text[j];
                
                wsh.Cells[rng.Rows.Count + 1, 1] = rng.Rows.Count;
                wsh.Cells[rng.Rows.Count + 1, i + 2] = stRD;
            }
            if (MakeNew == true)
                wb.SaveAs("F:\\Programming\\Programmable_DC\\GwInStek\\Progs\\Mine5\\" + filename + ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            wb.Save();
            wb.Close(true, misValue, misValue);
            exc.Quit();
            MessageBox.Show(                    // Выводим сообщение
                    "Saved",
                    "Saved",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Question,
                    MessageBoxDefaultButton.Button1);
            releaseObject(wsh);
            releaseObject(wb);
            releaseObject(exc);
        }
        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
Можно ли в Excel указывать координаты ячеек и соответственно диапазоны с помощью цифровых координат, без использования буквенных. Знаю, что можно создать массив String и вбить туда координаты типа "А", "В", "С".... но это не вариант, потому что заранее координат не знаю, а делать массив и вбивать туда несколько сотен символов - идея фиговая) Подскажите альтернативу.

Решение задачи: «Указать адрес ячейки Excel цифровыми координатами, а не буквенными»

textual
Листинг программы
wsh.Cells[rng.Rows.Count + 1, 1].Font.Name = "Arial";
wsh.Cells[rng.Rows.Count + 1, 1].Font.Color = ColorTranslator.ToOle(Color.White);
wsh.Cells[rng.Rows.Count + 1, 1].Interior.Color = ColorTranslator.ToOle(Color.Black);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы