用OleDb方式连接excel,无法删除默认sheet的问题 那你就不会先drop table把sheet1清空,然后把你自己create的table贴在sheet1里,再把sheet1的名字改了嘛 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我每次create的表都不一样,是insert不进sheet1的, 另外 oledb 怎么修改 execel 工作薄 名的? 1.参考下这个//以datatable的形式返回sheet的内容 public DataTable ShowSheet(string filePath, string sheetName) { string strConn = FatherForm.xml._excConn1 + filePath + FatherForm.xml._excConn2; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); string sql = "select * from [" + sheetName + "$]"; OleDbDataAdapter da = new OleDbDataAdapter(sql, conn); DataTable dt = new DataTable(); da.Fill(dt); conn.Close(); return dt; }都能返回一个dt,插入到sheet不难,这里就不写了。2.//返回所有sheet名 public string[] ImportExcel(string filePath) { string strConn = FatherForm.xml._excConn1 + filePath + FatherForm.xml._excConn2; OleDbConnection conn = new OleDbConnection(strConn); conn.Open(); DataTable dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"table"}); int len=dt.Rows.Count; string[] sheetNames = new string[len]; int start; for (start = 0; start < len; start++) { string allName=dt.Rows[start]["TABLE_NAME"].ToString(); sheetNames[start] = allName.Replace("$","");//remove $ sysmbol } conn.Close(); return sheetNames; } 1. 你这只是读excel的数据源 , 和 把不同的表插入excel 是不同的概念2. 你这依然是读表名,不是改表名 #region 去除多余SHEET for (int i = m_objBook.Sheets.Count; i >= 1; i--) { Excel.Worksheet worksheetDataDel = (Excel.Worksheet)m_objBook.Sheets.get_Item(i); if (worksheetDataDel.Name.ToLower() == "sheet1" || worksheetDataDel.Name.ToLower() == "sheet2" || worksheetDataDel.Name.ToLower() == "sheet3") { worksheetDataDel.Delete(); } } #endregion 我现在就是不想用excel com 方式, 使用这种方式老是碰到各种意外 明白楼主的concern. 支持一下! 求助,求商输出余数的函数 C# webservice 怎样分页传送一个数据量较大的DataTable 最近小菜想弄个网吧管理软件 求教,在线等~~~ C# winform 用C#怎样设置本程序在Windows任务管理器中的进程优先级?(可能是有点难哦) C#取得當前datagridview某一列中的值 关于windowsform的treeview问题(希望大家帮忙) 在winform里DataGrid中的列如何实现前后的拖动? Microsoft 的首席架构师 求救高手:如何将Object类型的对象转换成byte[] WPF,请教TabControl控件 C#抓取HTML页面~~
public DataTable ShowSheet(string filePath, string sheetName)
{
string strConn = FatherForm.xml._excConn1 + filePath + FatherForm.xml._excConn2;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string sql = "select * from [" + sheetName + "$]";
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
return dt;
}都能返回一个dt,插入到sheet不难,这里就不写了。
2.//返回所有sheet名
public string[] ImportExcel(string filePath)
{
string strConn = FatherForm.xml._excConn1 + filePath + FatherForm.xml._excConn2;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open(); DataTable dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[]{null,null,null,"table"});
int len=dt.Rows.Count;
string[] sheetNames = new string[len];
int start;
for (start = 0; start < len; start++)
{
string allName=dt.Rows[start]["TABLE_NAME"].ToString();
sheetNames[start] = allName.Replace("$","");//remove $ sysmbol
}
conn.Close();
return sheetNames;
}
for (int i = m_objBook.Sheets.Count; i >= 1; i--)
{
Excel.Worksheet worksheetDataDel = (Excel.Worksheet)m_objBook.Sheets.get_Item(i);
if (worksheetDataDel.Name.ToLower() == "sheet1" || worksheetDataDel.Name.ToLower() == "sheet2" || worksheetDataDel.Name.ToLower() == "sheet3")
{
worksheetDataDel.Delete();
}
}
#endregion