如何读取Excel文件(仅标题)数据

时间:2019-11-22 06:53:26

标签: c# excel

我想从Excel的列标题中读取数据。 每个excel文件具有相同的标题名称,但标题名称位于不同的行中。 请用c#代码帮助我。 我的代码在下面。

 var textfile = Request.Files[0];
        string profileimage = Path.GetExtension(textfile.FileName);           
        string ProfileName = path.GetFileNameWithoutExtension(textfile.FileName);
        IExcelDataReader excelReader;     
     excelReader=ExcelReaderFactory.CreateBinaryReader(textfile.InputStream);
         DataSet result = excelReader.AsDataSet();
         DataTable dt = result.Tables[0];
         int Tcount = dt.Rows.Count;
         for (int i = 2; i < dt.Rows.Count; i++)
            {}

...

2 个答案:

答案 0 :(得分:1)

一种方法是使用Interop。这是随办公室提供的,因此您不需要任何第三方的东西。

using Excel=Microsoft.Office.Interop.Excel; 
// Start Excel.exe
MyApp = new Excel.Application();
// Hide the visual application, you can also choose to omit this to show the excel application while your code works on it.
MyApp.Visible = false;
// Open the file
MyBook = MyApp.Workbooks.Open("Some/Excel/File");
// Get the first sheet
MySheet = MyBook.Sheets[1];
// Get some cell value
MyCell= MySheet.Cells[rowIndex,colIndex]

然后,您可以遍历各行以通过行/列索引或字符串比较来查找标题。 最后,您需要使用此命令释放COM对象(此处的顺序很重要),否则Excel.exe将继续运行:

Marshal.ReleaseComObject(MyCell);
Marshal.ReleaseComObject(MySheet);
Marshal.ReleaseComObject(MyBook);
Marshal.ReleaseComObject(MyApp);

只需确保首先阅读文档,因为使用互操作时会遇到一些麻烦,例如释放对象。

答案 1 :(得分:1)

尝试使用OpenXML SDK。在这里您可以找到有关以下内容的更多信息:

  1. StackOverflow
  2. Microsoft Docs
  3. NuGet
  4. GitHub