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

时间:2015-05-13 09:23:45

标签: c# excel asp.net-web-api

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

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

3 个答案:

答案 0 :(得分:2)

您可以使用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 + " ");
             }
        }
    }
}

答案 1 :(得分:0)

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

他们还提供了许多教程。

答案 2 :(得分:-1)

快速搜索互联网,您会看到以下文章,其中包含有关如何使用c#读取xls和xlsx文件的简单示例。

CodeProjects article on reading/writing Excel files

选择其中一个示例并采用它来满足您的需求,示例要求您指定文件的路径,只需传入&#34; templatePath&#34;字符串。

将excel数据读入NPOI工作簿或数据集后(根据您选择的选项),您应该能够使用linq返回所需的IEnumerable数据。