gpt4 book ai didi

c# - 如何使用 NPOI 读取上传的 Excel 文件而不存储在服务器或项目中

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:06 27 4
gpt4 key购买 nike

下面是我的示例代码,使用的是 NPOI.dll。我可以读取 EXCEL 文件(即 Excel 将像 D:/Jamal/Test.xls 一样存储在系统中。然后 dll 很容易读取内容,但我需要读取上传的 Excel 文件之前没有将它存储在任何地方。HTTPPOSTEDFILEBASE excelfile 具有 Excel 文件的值,但我需要知道如何使用 NPOI dll 读取它

public List<string> SendInvitesExcelFile1(List<String> CorrectMailIDs,
ListInvites Invites, HttpPostedFileBase excelfile)
{
List<string> mailids = new List<string>();
//string filename = (excelfile.FileName).ToString();
HSSFWorkbook hssfwb;
// using (FileStream file = new FileStream(@"D:\test.xls", FileMode.Open, FileAccess.Read))

using (FileStream file = new FileStream(excelFile.FileName, FileMode.Open, FileAccess.Read))
{
hssfwb = new HSSFWorkbook(file);
}

Sheet sheet = hssfwb.GetSheet("sheet1");
for (int row = 0; row <= sheet.LastRowNum; row++)
{
if (sheet.GetRow(row) != null) //null is when the row only contains empty cells
{
mailids.Add(sheet.GetRow(row).GetCell(0).ToString());
}
}
return mailids;

最佳答案

我遇到了同样的问题,我使用 Inputstream 解决了它。我粘贴代码供您引用。

[HttpPost]
public DataTable PostValues(HttpPostedFileBase file)
{
ISheet sheet;
string filename = Path.GetFileName(Server.MapPath(file.FileName));
var fileExt = Path.GetExtension(filename);
if (fileExt == ".xls")
{
HSSFWorkbook hssfwb = new HSSFWorkbook(file.InputStream);
sheet = hssfwb.GetSheetAt(0);
}
else
{
XSSFWorkbook hssfwb = new XSSFWorkbook(file.InputStream);
sheet = hssfwb.GetSheetAt(0);
}

DataTable table = new DataTable();
IRow headerRow = sheet.GetRow(0);
int cellCount = headerRow.LastCellNum;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
int rowCount = sheet.LastRowNum;
for (int i = (sheet.FirstRowNum); i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
{
dataRow[j] = row.GetCell(j).ToString();
}
}
table.Rows.Add(dataRow);
}
return table;
}

关于c# - 如何使用 NPOI 读取上传的 Excel 文件而不存储在服务器或项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com