@yuyangJian Спасибо!
Я пытаюсь использоватьMicrosoft.Office.Interop.Excel Пространство имен открыть файл Excel (XSL или CSV, но, к сожалению,не XSLX) и импортируйте его в DataSet. У меня нет контроля над именами листов или столбцов, поэтому мне нужно разрешить их изменение.
Что я пробовалЯ попробовалOLEDB метод из-за этого в прошлом, и у него было много проблем (глючный, медленный, и требовал предварительного знания схемы файла Excel), поэтому я хочу избежать повторения этого. То, что я хотел бы сделать, это использовать Microsoft.Office.Interop.Excel, чтобы импортировать книгу непосредственно в DataSet, или перебрать рабочие листы и загрузить каждую в DataTable.
Верьте или нет, у меня были проблемы с поиском ресурсов для этого.Несколько поисков по StackOverflow нашли в основном людей, пытающихся сделать обратное (DataSet => Excel) или метод OLEDB. Google не был намного более полезным.
Что у меня так далеко public void Load(string filename, Excel.XlFileFormat format = Excel.XlFileFormat.xlCSV)
{
app = new Excel.Application();
book = app.Workbooks.Open(Filename: filename, Format: format);
DataSet ds = new DataSet();
foreach (Excel.Worksheet sheet in book.Sheets)
{
DataTable dt = new DataTable(sheet.Name);
ds.Tables.Add(dt);
//??? Fill dt from sheet
}
this.Data = ds;
}
Я в порядке, либо импортирую всю книгу сразу, либо перебираю по одному листу за раз. Могу ли я сделать это с Interop.Excel?