(Альтернативное название: ReadAllLines Analogue for Excel: какой способ загрузки и манипулирования данными Excel?)Открыть Excel, проанализировать данные?
Я хотел бы быстро взломать лист Excel и выполнить текстовые манипуляции. Я хочу, чтобы операция работала как ReadAllLines (https://msdn.microsoft.com/en-us/library/s2tte0y1(v=vs.110).aspx), но для Excel.
Я нашел следующий вопрос, который находится на точке, но семь лет. Reading Excel files from C# (Кроме того, это замороженный, исторически важный вопрос. Более того, у меня нет 50 баллов, поэтому я не смог бы прокомментировать, если бы он был открыт.) Я вырезал и вставил ответ Робин Робинсон в Visual Studio, изменив только путь :
var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "anyNameHere");
var data = ds.Tables["anyNameHere"].AsEnumerable();
var query = data.Where(x => x.Field<string>("id") != string.Empty).Select(x =>
new
{
id= x.Field<string>("id"),
});
Это не работает по методу Fill, так как «Внешняя таблица не соответствует ожидаемому формату».
Хорошие ли программисты сегодня делают это сегодня? т. е. следует ли исследовать Jet и посмотреть, есть ли обновления для последнего Excel, или есть новый и улучшенный способ?
Вы не указали, что произошло иначе, чем «похоже, не работает». Вполне возможно, что он * будет * работать, но у вас есть сбой конфигурации. Вместо того, чтобы задавать новый и неопределенный вопрос, вам было бы лучше добавить комментарий к существующему ответу. Я понимаю, что у вас недостаточно комментариев для комментариев, но это не значит, что задавать плохой вопрос - это правильный путь вперед. –
Спасибо, но я не ищу, чтобы вы исправили проблему. Я спрашиваю, рекомендуется ли эта же практика почти семь лет спустя. Если да, то я буду беспокоиться о том, почему это не работает. Я буду работать над уточнением вопроса с помощью этих комментариев. – jacoblambert
Я думаю, что маловероятно, что это действительно выйдет как хороший, по теме вопрос, если честно. –