昨天导入Excel数据时无意中发现有一部分数据无法正常导入,后来发现导入到DataSet中时数据项内容已经是空值了,看来是Excel数据源问题,在有针对性的查看了不能正常导入的数据项后发现了区别之处,空值的单元格与其它单元格的数据格式不一样,没有左上角的绿色小三角,经过以下操作修改单元格格式,然后再操作OK了,看来就是单元格的格式造成的。
具体操作步骤如下:
1、选择工作表中任意一个单元格,比如选择C5单元格,在该单元格中输入'1。
2、选定C5单元格,单击“开始”选项卡→“剪贴板”组下的“格式刷”按钮,此时鼠标变成小刷子形状。
3、选中A1:A18单元格区域,使用该小刷子去刷该数字区域。
4、选中A1:A18单元格区域,单击“数据”选项卡下“数据工具”组中的“分列”按钮→下一步→下一步→选择“列数据格式”中的“文本”→完成。
导入代码如下:
DataSet dsExcel;
HttpPostedFile file;
string strFilePath, strExe;
strFilePath = string.Empty;
if (FileUpload1.HasFile)
{
file = FileUpload1.PostedFile;
strExe = Path.GetExtension(file.FileName);
if (!strExe.ToUpper().Equals(".XLS"))
{
Share.PromptMessage(this, "文件格式错误!请选择正确的Excel文件!");
return false;
}
strFilePath = ConfigurationManager.AppSettings["AffixPath"];
if (!Directory.Exists(strFilePath))
Directory.CreateDirectory(strFilePath);
strFilePath += "//" + m_ExcelFileName;
file.SaveAs(strFilePath);
}
if (!File.Exists(strFilePath))
{
Share.PromptMessage(this, "Excel文件上传失败!");
return false;
}
dsExcel = ExcelManage.ExcelToDS(strFilePath);
if (dsExcel != null && dsExcel.Tables[0].Rows.Count > 0)
{
导入操作.......
}