C# 读取excel数据 部分为空值的问题

stringStrConn="Provider=Microsoft.ACE.OLEDB.12.0;DataSource='"+Path+"';ExtendedProper... string StrConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + Path + "';Extended Properties='Excel 12.0;HDR=NO; IMEX=1'";
OleDbConnection Conn = new OleDbConnection(StrConn);
Conn.Open();
string StrExcel = "";
OleDbDataAdapter MyCommand = null;
DataSet Ds = null;
StrExcel = "select * from [sheet1$]";
MyCommand = new OleDbDataAdapter(StrExcel, StrConn);
Ds = new DataSet();
MyCommand.Fill(Ds, "[sheet1$]");
Conn.Close();

//定义二维数组存储 Excel 表中读取的数据
DataTable ExcelTable = Ds.Tables["[sheet1$]"];
int Colums = RealColumn(Path);//列数
int Rows = RealRow(Path);//行数

string[][] StoryData = new string[Rows][];

// 定义交叉数组
for (int i = 0; i < Rows; i++)
StoryData[i] = new string[Colums];

// 交叉数组赋值
for (int i = 0; i < Rows; i++)
for (int j = 0; j < Colums; j++)
StoryData[i][j] = ExcelTable.Rows[i][j].ToString().Trim();

return StoryData;

有时候数据读取出来是空值,请问怎么解决?
展开
 我来答
Sxzy灬丨小柒
推荐于2016-04-09 · TA获得超过623个赞
知道小有建树答主
回答量:1223
采纳率:50%
帮助的人:277万
展开全部
你这行代码已经取到值了.下面的代码完全没用.
DataTable ExcelTable = Ds.Tables["[sheet1$]"];
你excel中的内容都在ExcelTable中.

如果取excel中第一行,第二列的值
string str = ExcelTable.Rows[0][1].ToString();

取excel行数
int count = ExcelTable.Rows.Count;

取excel列数
int column = ExcelTable.Column.Count;

判断为空
if ( ExcelTable.Rows[0][1].ToString() == "")
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咖啡嘤0o
2014-11-07 · TA获得超过144个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:140万
展开全部
excel的行列是从1开始的,所有循环从1开始,再检查下
以上说法不适合你现在情况,如果有空值,可以遍历一遍table然后更改空值情况
追问
我读取数据都是正常的,就只有个别几个数据读出来是空值
追答
// 交叉数组赋值
for (int i = 0; i < Rows; i++)
for (int j = 0; j < Colums; j++)
StoryData[i][j] = Convert.IsDBNull(ExcelTable.Rows[i][j]) ? "" :ExcelTable.Rows[i][j].ToString().Trim();

return StoryData;

你这行这么改
用Convert.IsDBNull()函数判断表里是否null值,用==null是无法判断datatable里null的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
库特吉
推荐于2018-05-14 · TA获得超过438个赞
知道答主
回答量:140
采纳率:0%
帮助的人:51.1万
展开全部
使用控件操作excel文件吧,比如 NPIO等 。要不你这样写的程序必须要求机器上安装有office套件,限制性太大了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式