Silver Lightning Ответов: 0

Как получить конкретный заголовок столбца и его значение в excel с помощью ASP.NET MVC C#


How to get specific column header and its value in excel using ASP.NET MVC C#
Example: I need to fine the header column name "All Section", but this column is positioned dynamically. some times  there were "All Section" in column D, E, AA etc.
Once I found all these header ("All Section"), then I need to get it's column value and sum its total.

Thank you very much in advance. just need some guidelines or sample code here.


Что я уже пробовал:

Смотрите ниже мой первоначальный код.


Here's my initial code using this
<pre>using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using Excel = Microsoft.Office.Interop.Excel;


public static List<Tuple<int, string>> GetExcelNamesPerFile(string reportFileName, ref Error error)
       {

           List<Tuple<int, string>> excelNamesPerFile = new List<Tuple<int, string>>();
           int? reportFileID = null;
           try
           {
               // get excelFile ID
               using (var dbContext = new EXCELEntities())
               {
                   reportFileID = (from reportFile in dbContext.R_ReportFile where reportFile.FileName == reportFileName select reportFile.ID).First();
               }



               // get excel names
               using (var dbContext = new EXCELEntities())
               {
                   var excelReports = (from reportsDB in dbContext.SchedNo_Loc where reportsDB.ReportFile_ID == reportFileID select reportsDB).ToList();

                   foreach (var item in excelReports)
                   {
                       excelNamesPerFile.Add(new Tuple<int, string>(item.ReportFile_ID, item.ScheduleNo));
                   }
               }
           }
           catch (Exception ex)
           {
               error = new Error()
               {
                   ErrorCode = "-99",
                   ErrorMessage = ex.Message
               };


               return reportNamesPerFile;
           }


           return excelNamesPerFile;
       }

Richard Deeming

using Excel = Microsoft.Office.Interop.Excel;

Читайте в следующей статье базы знаний Майкрософт :

Рекомендации по автоматизации работы офиса на стороне сервера[^]
В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.

Существуют различные способы чтения и создания электронных таблиц Excel на сервере без использования Office interop. Например:
* EPPlus[^];
* ClosedXML[^];
* ExcelDataReader[^];
* SDK OpenXML[^];

0 Ответов