Я хотел бы получить имя листа загруженного файла excel с использованием кода C#. Файл может быть в формате .xls или .xlsx. Кодекс я использовал это следующим образом:Как получить имя листа загруженного файла excel с помощью C#?
protected void btnGenerateCSV_Click(object sender, EventArgs e)
{
string sourceFile = ExcelFileUpload.PostedFile.FileName;
string worksheetName = ??? (How to get the first sheetname of the uploaded file)
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sourceFile + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
if (sourceFile.Contains(".xlsx"))
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sourceFile + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";
try
{
conn = new OleDbConnection(strConn);
conn.Open();
cmd = new OleDbCommand("SELECT * FROM [" + worksheetName + "$]", conn);
cmd.CommandType = CommandType.Text;
wrtr = new StreamWriter(targetFile);
da = new OleDbDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
for (int x = 0; x < dt.Rows.Count; x++)
{
string rowString = "";
for (int y = 0; y < dt.Columns.Count; y++)
{
rowString += "\"" + dt.Rows[x][y].ToString() + "\",";
}
wrtr.WriteLine(rowString);
}
}
catch (Exception exp)
{
}
finally
{
if (conn.State == ConnectionState.Open)
conn.Close();
conn.Dispose();
cmd.Dispose();
da.Dispose();
wrtr.Close();
wrtr.Dispose();
}
}
string worksheetName = ???
(Как получить первый SheetName загруженного файла)
Любой пожалуйста помогите ...
Спасибо за ваш ответ, но я просто получаю пустую строку. Пожалуйста, помогите. –
@prabuR - это листы данных? вы можете показать код, который вы пробовали – Karthik
conn = new OleDbConnection (strConn); conn.Open(); Таблицы DataTable = conn.GetOleDbSchemaTable (OleDbSchemaGuid.Tables, null); foreach (DataRow dr in Sheets.Rows) { workheetName = dr [0] .ToString(); } cmd = new OleDbCommand ("SELECT * FROM [" + workheetName + "$]", conn); –