Как ввести значение в ячейку на основе комбинации строки-столбца в файле Excel .xlsx, используя C#? - PullRequest
0 голосов
/ 10 апреля 2020

Я просто хочу установить значение ячейки, используя имена заголовков строк и столбцов, т.е. если у меня есть excel (с иерархией на скриншоте Excel), я хочу добавить «val» в row3, col3 (без использования A4, D4), как я могу сделать это в C#?

Скриншот Excel

1 Ответ

0 голосов
/ 11 апреля 2020

Я нашел обходной путь :)

Public static void WriteExcel(string excelFilepath,string sheetName, string rowHeader, string columnHeader, string requiredText)
    {
        var excelPath = excelFilepath;
        var excelApp = new Excel.Application();
        //excelApp.Visible = true;

        Excel.Workbook xlWorkbook = excelApp.Workbooks.Open(excelPath);
        Excel.Worksheet xlSheet = xlWorkbook.Sheets[sheetName]; // get first sheet
        Excel.Range xlRange = xlSheet.UsedRange; // get the entire used range
        try
        {
            //Getting location of row and column headers location
            var rowRange = xlRange.Find(rowHeader, LookAt: Excel.XlLookAt.xlWhole);
            var columnRange = xlRange.Find(columnHeader, LookAt: Excel.XlLookAt.xlWhole);

            //Getting Row Header X and Y values
            var rowRangeX = rowRange.Column;
            var rowRangeY = rowRange.Row;

            //Getting Column ow Header X and Y values
            var columnRangeX = columnRange.Column;
            var columnRangeY = columnRange.Row;

            //Setting required cell with string value
            xlSheet.Cells[rowRangeY, columnRangeX].Value = requiredText;
        }
        finally
        {
            //Saving the file and closing it                
            excelApp.ActiveWorkbook.Save();
            excelApp.Workbooks.Close();
            excelApp.Quit();
        }         
    }        
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...