Как скачать VSTO Excel? - PullRequest
       13

Как скачать VSTO Excel?

1 голос
/ 23 января 2011

Я хочу выполнить следующую задачу.

  1. У меня есть веб-приложение, через которое я буду вызывать приложения VSTO, я должен вставить некоторые значения в один из листовкнига Excel

  2. Я буду вставлять значения в лист Excel и загружать их в БД с помощью кнопки загрузки.

ЧтоЯ уже сделал.

  1. Я создал решение для веб-приложений."C: \ examples \ WebVSTO \ WebVSTO \ WebVSTO"

  2. Я создал решение VSTO.«C: \ examples \ VSTO2007 \ VSTO2007 \ VSTO2007.xlsx»

  3. Я вставляю значения в таблицу Excel, как показано ниже:

    System.Data.OleDb.OleDbConnection objConn = 
        new System.Data.OleDb.OleDbConnection(
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
        @"C:\Examples\VSTO2007\VSTO2007\VSTO2007.xlsx" +
        ";Extended Properties=Excel 8.0;");
    
    objConn.Open();
    
    System.Data.OleDb.OleDbCommand objCmd = new System.Data.OleDb.OleDbCommand();
    
    objCmd.Connection = objConn;
    
    objCmd.CommandText = "Insert into [Sheet1$]" + " values ('Test')";
    
    objCmd.ExecuteNonQuery();
    
    objConn.Close();
    
  4. Я запустил веб-приложение и заметил, что значения были вставлены в Excel.

  5. Я загружаю значения из Excel, запустив решение VSTO, и значения были загружены вDB.

Проблемы

  1. Excel (только VSTO Excel, а не все решение) будет помещен в другую папку.Когда я нажимаю кнопку загрузки в веб-приложениях, Excel загружается в клиентское место.

Я сталкиваюсь с вышеуказанной проблемой.Как мне ответить.

Пожалуйста, дайте мне знать.

Заранее спасибо.

1 Ответ

1 голос
/ 23 января 2011

Если я правильно понимаю, вопрос довольно общий: «Как сделать файл, который отсутствует в папке веб-приложения, доступным для загрузки?»

Простой способ сделать это - записать двоичный код в поток ответов и установить некоторые заголовки.

HttpResponse.Clear();
HttpResponse.BufferOutput = false;
HttpResponse.ContentType = "application/excel";
HttpResponse.AddHeader("content-disposition", "filename=VSTO2007.xlsx");

FileStream sourceFile = new FileStream(@"C:\Examples\VSTO2007\VSTO2007\VSTO2007.xlsx", FileMode.Open);
long FileSize;
FileSize = sourceFile.Length;
byte[] getContent = new byte[(int)FileSize];
sourceFile.Read(getContent, 0, (int)sourceFile.Length);
sourceFile.Close();

Response.BinaryWrite(getContent);

Я не тестировал его, но он должен работать.

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