Как добиться импорта / экспорта по нажатию кнопки из сетки, чтобы превзойти лист с помощью asp.net mvc - PullRequest
1 голос
/ 23 февраля 2010

У меня есть сетка с данными. Мне нужно нажать одну кнопку, чтобы экспортировать / импортировать эти данные сетки в таблицу Excel, используя asp.net mvc.

Может кто-нибудь помочь мне, как это сделать.

Спасибо.

Ответы [ 4 ]

1 голос
/ 23 февраля 2010

Вы можете обойти автоматизацию Excel и использовать OleDbConnection вот так

connectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;'";
...

connectionString = string.Format(connectionString, fileName);
OleDbConnection conn = new OleDbConnection(connectionString)
.............
// You can create table or insert value using SQL statement 
// Create your OleDbCommand and execute it. 
............
conn.Close();
1 голос
/ 23 февраля 2010

Чтобы импортировать из Excel, загрузите файл как обычно. Затем со ссылкой на Microsoft.Office.Interop.Excel.dll (из офиса 11) вы можете использовать Excel API для перебора листов и извлечения данных.

1 голос
/ 23 февраля 2010

Я рекомендую использовать LocalReport для отображения результатов.Вам нужно только создать файл rdlc (добавить новый отчет в проект) с нужным вам макетом.Затем вам нужно передать данные, которые вы хотите связать, и вызвать метод Render (вы можете вернуть как Excel, так и PDF).Честно говоря, у меня нет примера кода под рукой, но если вы немного погуглите, вы наверняка узнаете, как это сделать.Удачи.

1 голос
/ 23 февраля 2010

Если данные должны быть отправлены клиентом, отправьте их на сервер. Оказавшись на сервере, создайте StringBuilder и превратите данные в большую строку, используя запятые для разделителей столбцов и новые строки после каждой строки. Затем верните новый FileResult:

В вашем контроллере после создания StringBuilder sb:

MemoryStream ms = new MemoryStream();
StreamWriter writer = new StreamWriter(ms, Encoding.UTF8);
writer.Write(sb.ToString());
writer.Flush();
ms.Position = 0;

return File(ms, "application/vnd.ms-excel", "myfile.csv");

Импорт данных Excel - это другая история. Я не сделал этого, так что, надеюсь, кто-то еще сможет дать некоторое представление об этом.

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