Приложение C # для импорта содержимого файла Excel в текстовый файл - PullRequest
1 голос
/ 09 декабря 2010

У меня есть файл Excel со следующими столбцами

Field1 Field2 Field3, Field4
===============================
123 4   abcd    efghi
456 5   aabb    ffjjk
789 7   ccdd    ababa

Я бы хотел написать консольное приложение на c #, которое будет читать файл Excel и создать текстовый файл с следующий вывод

Field1 Field2 Field3, Field4
===============================
123 4   ab  hi
456 5   aa  jk
789 7   cc  ba

в моем консольном приложении я должен иметь возможность указывать для каждого столбца в файле Excel, начальный и конечный столбцы.

Как бы я написал заявку от начала до конца?

Ответы [ 2 ]

4 голосов
/ 09 декабря 2010

Один из способов сделать это - запрос к электронной таблице

string strConn = "Provider=Microsoft.Jet.OleDb.4.0;data source=C:\\Inetpub\\wwwroot\\CS\\HostData.xls;Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(strConn);

string strSQL = "SELECT * FROM [A1:B439]";
OleDbCommand objCmd = new OleDbCommand(strSQL, objConn);

objConn.Open();
dgReadHosts.DataSource = objCmd.ExecuteReader();
dgReadHosts.DataBind();
objConn.Close();

Я взял этот пример отсюда: http://forums.asp.net/t/1097496.aspx еще один хороший источник - поиск SO: P Чтение Excelфайлы из C #

Наконец, я думаю, вам понравится: http://msdn.microsoft.com/en-us/library/dd920313.aspx
, в него включен пример использования linq AND и пример вывода электронной таблицы в консоль

2 голосов
/ 09 декабря 2010

Вы можете просто использовать Excel Automation, чтобы получить данные, а затем просто записать их в файл, используя стандартные System.IO классы.

Подробнее см. Здесь: Как автоматизировать Microsoft Excel изMicrosoft Visual C # .NET

Если вам удастся извлечь все значения для одной строки в какой-либо массив или список, вы можете затем использовать String.Join, чтобы преобразовать это в разделенную табуляцией строку, а затемпросто пишите одну строку за раз в файл.

Чтобы получить только определенные части значений для некоторых столбцов, вы можете использовать String.Substring.

Вы также можетеиспользовать OleDB для считывания всех данных, поскольку они представляются в табличном формате, что может быть быстрее и избежать зависимости от установки Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...