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

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

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

Открываю или создаю, если нету, файл Excel и забиваю в него данные. ​*
Листинг программы
  1. private void WriteDataInExcel()
  2. {
  3. DateTime ThisDay = DateTime.Today; // узнаем дату
  4. listBox1.Items.Add(ThisDay.ToString("d").Replace("/", "-"));
  5. String filename = ThisDay.ToString("d").Replace("/", "-");
  6. bool MakeNew = false;
  7. Excel.Application exc = new Microsoft.Office.Interop.Excel.Application();
  8. Excel.Workbook wb;
  9. Excel.Worksheet wsh;
  10. Excel.Range rng; // RCells;
  11. exc.Visible = false; // скрываем Excel
  12. object misValue = System.Reflection.Missing.Value;
  13. if (exc == null)
  14. {
  15. MessageBox.Show("Excel is not properly installed! /n Excel не установлен!");
  16. return;
  17. }
  18. try
  19. {
  20. wb = exc.Workbooks.Open("F:\\Programming\\Programmable_DC\\GwInStek\\Progs\\Mine5\\" + filename + ".xls");
  21. }
  22. catch
  23. {
  24. try
  25. {
  26. wb = exc.Workbooks.Add(misValue);
  27. MakeNew = true;
  28. }
  29. catch
  30. {
  31. MessageBox.Show( // Выводим сообщение
  32. "Something is wrong with Excel",
  33. "ERROR!",
  34. MessageBoxButtons.OK,
  35. MessageBoxIcon.Question,
  36. MessageBoxDefaultButton.Button1);
  37. exc.Quit();
  38. return;
  39. }
  40. }
  41. wsh = (Excel.Worksheet)wb.Worksheets.get_Item(1);
  42. // wsh = wb.Worksheets[1];
  43. rng = wsh.UsedRange;
  44. wsh.Cells[1, 1] = "№";
  45. // RCells = wsh.get_Range(A1,rng.Columns.Count);
  46. // RCells.Merge(Type.Missing);
  47. for (int i = 0; i <= MesCount; i++)
  48. {
  49. wsh.Cells[1, i + 2] = i + 1;
  50. int NR = 0;
  51. String stRD = "";
  52. for (int j = 0; j < LblCurRes[i].Text.Length; j++)
  53. if (LblCurRes[i].Text[j] == 'R')
  54. {
  55. NR = j;
  56. break;
  57. }
  58. for (int j = NR + 4; j < LblCurRes[i].Text.Length; j++)
  59. stRD += LblCurRes[i].Text[j];
  60. wsh.Cells[rng.Rows.Count + 1, 1] = rng.Rows.Count;
  61. wsh.Cells[rng.Rows.Count + 1, i + 2] = stRD;
  62. }
  63. if (MakeNew == true)
  64. 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);
  65. wb.Save();
  66. wb.Close(true, misValue, misValue);
  67. exc.Quit();
  68. MessageBox.Show( // Выводим сообщение
  69. "Saved",
  70. "Saved",
  71. MessageBoxButtons.OK,
  72. MessageBoxIcon.Question,
  73. MessageBoxDefaultButton.Button1);
  74. releaseObject(wsh);
  75. releaseObject(wb);
  76. releaseObject(exc);
  77. }
  78. private void releaseObject(object obj)
  79. {
  80. try
  81. {
  82. System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
  83. obj = null;
  84. }
  85. catch (Exception ex)
  86. {
  87. obj = null;
  88. MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
  89. }
  90. finally
  91. {
  92. GC.Collect();
  93. }
  94. }
Можно ли в Excel указывать координаты ячеек и соответственно диапазоны с помощью цифровых координат, без использования буквенных. Знаю, что можно создать массив String и вбить туда координаты типа "А", "В", "С".... но это не вариант, потому что заранее координат не знаю, а делать массив и вбивать туда несколько сотен символов - идея фиговая) Подскажите альтернативу.

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

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

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


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

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

15   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы