Ошибка при добавлении столбца в конец существующего файла Excel c# - PullRequest
0 голосов
/ 08 января 2020

Я хочу добавить столбец в конец существующего файла Excel с помощью Microsoft.Office.Interop.Excel в c#, я использую Microsoft Excel 2007, вот мой код:

   public void UpdateExcel_MSInterop(
        string ExcelFile)
        {
Microsoft.Office.Interop.Excel.Application xlApp = null;

            Workbook xlWorkbook = null;
            try
            {

                //define ms excel application
                xlApp = new Microsoft.Office.Interop.Excel.Application();

                //
                int Hwnd = xlApp.Hwnd;

                xlApp.DisplayAlerts = false;
                //
                xlWorkbook = xlApp.Workbooks.Open(ExcelFile, Type.Missing, true);

                int SheetIndex = 1;
                foreach (Worksheet objSHT in xlWorkbook.Worksheets)
                {
                    if (SheetIndex == 1)// ExcelSheetFullName.Substring(0, ExcelSheetFullName.Length - 1))
                    {
                        Range rng = objSHT.UsedRange;

                        int colCount = rng.Columns.Count;
                        int rowCount = rng.Rows.Count;

                        Range newRng = objSHT.get_Range(objSHT.Cells[1, 1], objSHT.Cells[1, colCount]).EntireColumn.Insert(Missing.Value,XlInsertShiftDirection.xlShiftToRight);

                        newRng.Cells[1, colCount + 1] = "State";
                        for (int r = 2; r <= rowCount; r++)
                        {
                            newRng.Cells[r, colCount + 1] = Products.Rows[r - 2]["state"].ToString();
                        }
                        break;
                    }

                    SheetIndex++;
                }
                xlWorkbook.Save();

                if (xlWorkbook != null)
                    xlWorkbook.Close(SaveChanges:true);

                if (xlApp != null)
                    xlApp.Quit();

            }
            catch (Exception ex)
            {
                if (xlWorkbook != null)
                    xlWorkbook.Close();

                if (xlApp != null)
                    xlApp.Quit();

                xlWorkbook = null;
                xlApp = null;

                MessageBox.Show(ex.Message + "\n" + ex.StackTrace.ToString());
                throw ex;
            }
        }

Я получаю сообщение об ошибке:

object dose not contain a definition for get_Range

Как исправить эту ошибку или, если мой подход неверен, как добавить столбец в конец существующего файла Excel, приведите пример, спасибо за помощь.

...