我在 MVC 应用程序中使用名为ExcelDataReader的 nuget 包来读取 Excel 工作表并将其转换为 HTML。听起来很愚蠢,但我无法从 excel 工作表中读取特殊字符。例如,单元格值为“59%”但其读数为 0.59 .那么我怎样才能从excel中获得完全相同的字符串值。我在Controller中使用以下代码来读取excel并将其显示为html。
public ActionResult ViewExcelFileData(long? id, int sheetindex)
{
var excelfile = db.ExcelUpload.FirstOrDefault(x => x.FileID == id);
string filePath= string.Format(Server.MapPath("~/App_Data/ExcelUploads/Labor_Excel/") + excelfile.FileName);
System.IO.File.GetAccessControl(filePath);
FileStream stream = System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read);
IExcelDataReader reader = null;
if (excelfile.FileName.EndsWith(".xls"))
{
reader = ExcelReaderFactory.CreateBinaryReader(stream);
}
else if (excelfile.FileName.EndsWith(".xlsx"))
{
reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
reader.IsFirstRowAsColumnNames = true;
DataSet result = reader.AsDataSet();
reader.Close();
return View(result.Tables[sheetindex]);
}
通过在视图端返回数据表,我在 Cshtml 中使用以下代码。
<table class="gridtable" id="table-1">
<thead class="fixed_headers">
<tr>
@foreach (DataColumn col in Model.Columns)
{
<th>@col.ColumnName</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn col in Model.Columns)
{
<td>@row[col.ColumnName]</td>
}
</tr>
}
</tbody>
</table>
那么在控制器端或视图端是否有可能获得59%而不是 0.59?
这是两张图片,一张属于excel,第二张是HTML。
图片:1
图片 2: