pranav8265 Ответов: 1

Экспорт gridview в excel с помощью activexobject


Я пытаюсь написать функцию java script, которая будет экспортировать данные, присутствующие в gridview, в файл excel .Я использую activeXObjext чтобы сделать это, но я получаю следующее сообщение об ошибке(сервер автоматизации не может создать объект).Я использую internet explorer 11, и я изменил опцию интернета, чтобы разрешить activex, но я получаю ту же ошибку.

Я сделал это с помощью htmltextwriter(asp.net) раньше, но здесь я должен использовать ActiveXObject .Я не получаю никакого решения для этого .Пожалуйста помочь.

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

Что я уже пробовал:

Я извлекаю данные из базы данных в gridview, а затем пытаюсь экспортировать их в лист excel.Вот что я попробовал.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1"  runat="server">
    <title></title>
    <script type="text/javascript">
function writeToExcel2() {
            var i, j, str,
                myTable = document.getElementById('GridView1'),
                rowCount = myTable.rows.length,
                excel = new ActiveXObject('Excel.Application');// Activates Excel
            excel.Workbooks.Add(); // Opens a new Workbook
            excel.Application.Visible = true; // Shows Excel on the screen
            for (i = 0; i < rowCount; i++) {
                for (j = 0; j < myTable.rows[i].cells.length; j++) {
                    str = myTable.rows[i].cells[j].innerText;
                    excel.ActiveSheet.Cells(i + 1, j + 1).Value = str; // Writes to the sheet
                }
            }
            return;
        }
 </script>
</head>
<body>
    <form id="form1"  runat="server" style="text-align:center;">
        <div >
            <h1><asp:Label ID="Label1" runat="server" Text="Label">EXPORTING GRIDVIEW</asp:Label></h1>
        </div>
        <div id="printme" align="center">
          <asp:GridView ID="GridView1" runat="server">
          </asp:GridView>
        </div>
        <br />        
        <input type="submit" onclick="writeToExcel2();" value="EXPORT TO EXCEL USING ACTIVEX" />         
    </form>
</body>
</html>

1 Ответов

Рейтинг:
2

F-ES Sitecore

Вы не можете просто создать какой-либо объект activex из javascript, объект должен быть настроен как подходящий для написания сценариев, иначе вы не сможете его создать. Excel не подходит для написания сценариев, поэтому не может быть автоматизирован с помощью javascript.


pranav8265

можете ли вы помочь мне в том, как достичь такой функциональности с помощью j query/java script или любого другого метода со стороны пользовательского интерфейса?

F-ES Sitecore

Вам лучше сгенерировать файл excel на сервере и загрузить его на клиент. Вы можете создавать файлы Excel с помощью EPPlug, драйвера Excel ODBC, Microsoft XML SDK, Aspose и других.

Richard Deeming

"Эпплуг- ...Это что-то новенькое. :)

Полагаю, вы имели в виду EPPlus[^].

F-ES Sitecore

Pfff, EPPlus - это MooTools создания Excel, get with The times :P