//根据excle的路径把第一个sheel中的内容放入datatable,并输出json格式的数据
public string getJsonFromExcel(string path)//excel存放的路径
{
try
{
//连接字符串
string excelConnstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';"; // Office 07及以上版本 不能出现多余的空格 而且分号注意
//string connstring = Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1';"; //Office 07以下版本
using (OleDbConnection conn = new OleDbConnection(excelConnstring))
{
conn.Open();
DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字
string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查询字符串
//string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查询字符串
OleDbDataAdapter ada = new OleDbDataAdapter(sql, excelConnstring);
DataSet set = new DataSet();
ada.Fill(set);
//return set.Tables[0];
DataTable dt = set.Tables[0];
string JsonString = string.Empty;
if (dt.Rows.Count > 0)
{
JsonString = JsonConvert.SerializeObject(dt);
}
//return dt;
return "{'success':1,'result':" + JsonString + "}";
}
}
catch (Exception)
{
return null;
}
}
转自https://www.cnblogs.com/ammy714926/p/4905026.html
出现C# conn.open() 外部表不是预期的格式问题,解决方法见