Не удалось загрузить гиперссылку из ячейки excel с помощью ASP.NET
Привет,
я экспортирую данные из asp.net gridview в excel для некоторых данных.
В этом случае одна из ячеек, содержащая гиперссылку в ячейке листа excel.
когда я нажимаю на гиперссылку в excel, то получаю всплывающее окно типа "уведомление о безопасности Microsoft Excel", за которым следует "не удается загрузить запрошенную вами информацию".
Как решить эту проблему.
SQL-запрос для сопоставления с gridview
IF @Spd_Type='Exportdata' Begin Create Table #Pkids(ID Int) Insert into #Pkids SELECT R.i.query('Pkid').value('.', 'VARCHAR(20)') FROM @Spd_XML.nodes('/DocumentElement/Test') R(i) Select EmpNo, Case When EmpNo ='' Then '' Else 'http://sas02.sanet.sam.intranet/D2/servlet/Download?auth=basic&event_name=d2_view&_docbase=uatprjarea&id=09139&version=CURRENT' End PDFEmpNo, Empname, Dept, From tbl_Student Where A.Pkid in(Select * from #Pkids) End
ASP.NET
<asp:GridView ID="grdEmp" AutoGenerateColumns="false" HeaderStyle-BackColor="Yellow" ShowHeader="false" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "EmpName")%> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Label ID="lblPOPDF" runat="server" Text='<%# Eval("EmpNo") %>' Visible="false" /> <asp:HyperLink ID="lnkbtnDownload" NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "POFEmpNo")%>' Text='<%# Eval("EmpNo") %>' runat="server"></asp:HyperLink> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Dept")%> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
Код ASP.NET.vb
Dim XML As String XML = Session("XML").ToString If XML = "<DocumentElement />" Then Session("XML") = "NULL" End If Conn.sqlCmd.Parameters.AddWithValue("@Spd_Type", "ExportData") Conn.sqlCmd.Parameters.AddWithValue("@Spd_XML", Session("XML").ToString) ds = Conn.XcuteResult(str, CommandType.StoredProcedure, "SPD_StudentInfo") grdEmp.DataSource = ds grdEmp.DataBind()
Наконец, когда я нажимаю на гиперссылку, я получаю следующее сообщение об ошибке.
Ошибка
: "cannot download the information you requested".
каково же решение этой проблемы?.
njammy
Что происходит, когда вы получаете доступ к url-адресу непосредственно из своего браузера?
gani7787
получение ошибки : "не удается загрузить запрошенную вами информацию".
njammy
Тогда что то не так с сервером а не с вашим кодом
Richard Deeming
Вы не экспортируете файл Excel. Вы экспортируете HTML-фрагмент, но отправляете заголовок, чтобы браузер сделал вид, что это файл Excel. Затем Excel попытается импортировать этот HTML-фрагмент в новый рабочий лист, но у вас будет очень мало контроля над тем, как этот импорт работает.
Вам, вероятно, повезет больше, если вместо этого вы экспортируете настоящий файл Excel. Есть несколько библиотек, которые позволяют вам это сделать - например, EPPlus[^], ClosedXML[^], и SDK OpenXML[^].
NB: Не пытайтесь использовать Office Interop для создания файла, так как это не поддерживается в ASP.NET приложения[^].
gani7787
Спасибо за вашу большую помощь.
ваши предложения просто великолепны. можете ли вы, пожалуйста. приведите один пример, чтобы открыть http-ссылку с помощью asp.net гиперссылка в файле excel. (http://sas02.sanet.sam.intranet/D2/servlet/Download?auth=basic&event_name=d2_view&_docbase=uatprjarea&id=09139&version=CURRENT) -- & gt; URL as empno like " 1001"