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打开本地文件?先谢谢!
答案 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数据。