ASP.NET 如何获取 Excel 中工作表的名称。

用FileUpload获取用户上传的Excel文件的名称。Excel文件中有三个Sheet。名称用户已经改过。现在用一个Button事件获取用户上传的Excel文件中的三... 用FileUpload获取用户上传的Excel 文件的名称。Excel 文件中有三个Sheet。名称用户已经改过。现在用一个Button事件获取用户上传的Excel 文件中的三个Sheet的名称。分别给Label1、Label2、Label3。望附完整的代码。谢谢! 展开
 我来答
扛米佩嘤cQ
2015-12-21 · 知道合伙人数码行家
扛米佩嘤cQ
知道合伙人数码行家
采纳数:351 获赞数:3695
就读于重庆大学电子商务专业,在学习和实践的过程中有一定的经验,学习过电子商务类的知识,目前是学生。

向TA提问 私信TA
展开全部
ASP.NET 获取 Excel 中工作表的名称方法如下:
string date = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString();
path = UserCompany + UserName + YearList.SelectedValue.ToString() + "年" + MonthList.SelectedValue.ToString() + "月" + date + ".xls";
FileUpload1.PostedFile.SaveAs(path);
//将文件复制到服务器指定目录中
//调用获取excel为dataset的函数
DataSet data = new DataSet();
for (int i = 0; i < tablenum; i++)
{
tablename[i] = tables[i].TableName.ToString();
//获取表格名 称,excel表格中sheet的名称
}
data = GetExcelData.GetDataSetFromExcel(path);
int tablenum;
tablenum = data.Tables.Count;
//只充许一个excel中有一个sheet页,通过选择页面中表格类型确定,如需要一个excel中有多个sheet页面,则可去掉下面的判断
if (tablenum>1)
{
Response.Write("<Script Language=JavaScript>alert('excel表格中只充许有一个sheet页面!');</Script>");
return;
}
DataTable[] tables = new DataTable[tablenum];
for (int i = 0; i < tablenum; i++)
{
tablename[i] = tables[i].TableName.ToString();
//获取表格名称,excel表格中sheet的名称
}
伯盈秀
2011-07-21 · TA获得超过1444个赞
知道小有建树答主
回答量:3051
采纳率:0%
帮助的人:0
展开全部
1、在EXCEL中引用当前工作表名
如果你的工作薄已经保存,下面公式可以得到单元格所在工作表名:
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
2、计算一个工作薄中有多少个工作表
方法一:
点"工具"->"宏"->"VB编辑器"->"插入"->"模块",输入如下内容:
Sub sheetcount()
Dim num As Integer
num = ThisWorkbook.Sheets.Count
Sheets(1).Select
Cells(1, 1) = num
End Sub
运行该宏,在第一个(排在最左边的)工作表的A1单元格中的数字就是sheet的个数。

方法二:
按Ctrl+F3(或者点"插入"->"名称"->"定义"),打开"定义名称"对话框
定义一个X
"引用位置"输入:
=get.workbook(4)
点"确定"。
然后你在任意单元格输入=X
出来的结果就是sheet的个数。
3、在一个工作薄中快速整理出一个目录工作表即可在目录工作表上直接链接上其中一个:
1、用宏3.0取出各工作表的名称,方法:
Ctrl+F3出现自定义名称对话框,取名为X,在“引用位置”框中输入:
=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,100)
确定

2、用HYPERLINK函数批量插入连接,方法:
在目录工作表(一般为第一个sheet)的A2单元格输入公式:
=HYPERLINK("#'"&INDEX(X,ROW())&"'!A1",INDEX(X,ROW()))
将公式向下填充,直到出错为止,目录就生成了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aplesen
推荐于2016-03-12 · TA获得超过687个赞
知道小有建树答主
回答量:860
采纳率:0%
帮助的人:509万
展开全部
openFileDialog1.ShowDialog();

oledbconn1.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data source="+openFileDialog1.FileName+";Extended Properties=Excel 8.0;Persist Security Info=False";

oledbconn1.Open();

DataTable dt = oledbconn1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new objec] {null, null, null, "TABLE"});

foreach (DataRow dr in dt.Rows)
{

comboBox1.Items.Add((String)dr["TABLE_NAME"]);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liquan180
2011-07-20 · 超过48用户采纳过TA的回答
知道答主
回答量:170
采纳率:0%
帮助的人:130万
展开全部
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileUrl + ";Extended Properties='Excel 8.0;IMEX=1;HDR=" + ynHDR + "'";

System.Data.OleDb.OleDbConnection Conn2 = new System.Data.OleDb.OleDbConnection(connStr);
Conn2.Open();
String sqlGetColumnName = "SELECT * FROM [" + sheet + "]";
System.Data.OleDb.OleDbDataAdapter odasheet = new System.Data.OleDb.OleDbDataAdapter(sqlGetColumnName, Conn2);
DataSet dsSheet = new DataSet();
odasheet.Fill(dsSheet, dataSection);
Conn2.Dispose();
Conn2.Close();
return dsSheet;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式