@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?

Ответы на вопрос(5)

Ваш ответ на вопрос