У меня проблема с чтением из .xlsx (Excel) файла. Я пытался использовать:Как читать из XLSX (Excel)?
var fileName = @"C:\automated_testing\ProductsUploadTemplate-2015-10-22.xlsx";
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, "XLSData");
DataTable data = ds.Tables["XLSData"];
// ... Loop over all rows.
StringBuilder sb = new StringBuilder();
foreach (DataRow row in data.Rows)
{
sb.AppendLine(string.Join(",", row.ItemArray));
}
, но если не удалось из-за connectionString
. Так что я обновил линию поддержки .xlsx:
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", fileName);
, но я получаю:
провайдер «Microsoft.ACE.OLEDB.12.0» не зарегистрирован на локальном компьютере.
(Проблема здесь состоит в том, что я не в состоянии установить новое программное обеспечение на удаленной испытательной машине, так что я не в состоянии исправить это, и нужно найти другое решение.)
я также необходимо убедиться, что импортированные данные будут храниться в некотором простом виде (я начинающий программист), чтобы позволить мне перебирать его, т. е. создавать объекты с данными строки.
Другие подходы Я проверил:
комментарий: кажется, вероятно, будет работать для меня, но не поддерживает файлы Excel неизвестных размеров (случайное число строк и столбцов).
комментарий: не поддерживает настройки имен столбцов из другой строки, чем первый (в некоторых из моих файлов Excel, есть комментарии на 4-6 первых строк, а затем это заголовки строк и данные ниже).
комментарий: такая же проблема, как описано выше.
комментарий: загруженный пакет вес был более 60Мб и требует от меня, чтобы установить его на систему, которая не возможно в моей ситуации. В любом случае, люди отмечают, что он ограничен 150 рядами.
Тем временем я попытаюсь проверить https://code.google.com/p/linqtoexcel/, но все другие идеи более чем приветствуются!
EDIT: Только что проверил, что LinqToExcel, такой же вопрос, как и выше:
провайдер 'Microsoft.ACE.OLEDB.12.0' не зарегистрирован на локальном компьютере.
EDIT2: В конце концов, кажется, что это решение решить мою проблему:
https://stackoverflow.com/a/19065266/3146582
epplus https://epplus.codeplex.com/ – Fredou
@Fredou: это не создавать электронные таблицы? Мне нужно читать с одного. У вас есть пример этого? –
он также может прочитать файл excel, проверьте этот вопрос stackoverflow http://stackoverflow.com/questions/11685204/reading-excel-spreasheet-using-epplus или эту запись в блоге http://blog.fryhard.com/archive/2010 /10/28/reading-xlsx-files-using-c-and-epplus.aspx – Fredou