如何使用webapi读取本地excel文件?

public class ExcelParserController : ApiController { [HttpGet] public IEnumerable<string> Get(string templatePath) { ExcelParser excelParser = new ExcelParser(); return excelParser.Parse(templatePath); } } 

这是我的第一个想法。但是,我不知道如何从服务器读取本地excel文件。 templatePath就像“C:\ 1.xlsx”。如何使用webapi打开本地文件? 先进的感谢!

您可以使用OpenXML SDK访问Office文档,包括Excel文件。

以下是文档中的示例: https : //msdn.microsoft.com/EN-US/library/office/gg575571.aspx

 public static void OpenSpreadsheetDocument(string filepath) { // Open a SpreadsheetDocument based on a filepath. using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filepath, false)) { WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First(); string text; foreach (Row r in sheetData.Elements<Row>()) { foreach (Cell c in r.Elements<Cell>()) { text = c.CellValue.Text; Console.Write(text + " "); } } } } 

你可以去ASPOSE.CELL你可以利用它的API,他们也提供试用,所以你可以检查它是否有助于你的工作。 的Aspose.Cells

他们还提供了许多教程。

快速search互联网,你会遇到下面的文章,用简单的例子来介绍如何用c#读取xls和xlsx文件。

CodeProjects关于读/写Excel文件的文章

采取这些例子之一,并采取它以满足您的需求,在示例要求您指定文件的path,只需传入您的“templatePath”string。

一旦excel数据被读入NPOI工作簿或数据集(根据您select的选项),您应该可以使用linq返回所需的IEnumerable数据。