Tag: asp.net

Excel应用程序不在Interop中退出

我正在使用下面的一段代码在ASP.net表单上dynamic地写入excel文件,可以将数据表保存为excel。 //Create Excel Object Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(target); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1]; worksheet.Name = "Worksheet1"; excel.Visible = false; //Generate Fields Name foreach (DataColumn col in dataTable.Columns) { colIndex++; excel.Cells[1, colIndex] = col.ColumnName; } object[,] objData = new object[rowNo, columnNo]; for (int row = 0; row < rowNo; row++) { for […]

ASP.Net到Excel导出 – 列宽和交替行着色

我有以下方法,最终创build一个CSV文件并返回该文件作为对客户端请求的响应。 我怎样才能改变列宽自动调整,并有行的替代着色? public static void ExportToCSV(DataTable dt, HttpResponseBase response, string filename) { response.AddHeader("content-disposition", "attachment; filename=" + filename); response.ClearContent(); response.ContentType = "application/vnd.ms-excel"; response.Charset = "UTF-8"; response.ContentEncoding = System.Text.Encoding.Unicode; response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); string tab = ""; foreach (DataColumn dc in dt.Columns) { if (!dc.ColumnName.StartsWith("_")) { response.Write(tab + dc.ColumnName); tab = "\t"; } } response.Write("\n"); int i; foreach (DataRow dr […]

在ASP.net中生成格式良好的Excel文件,而不需要在服务器上安装Excel

在excel文件中生成正常的柱状数据是相当容易的,但是你们中的任何一个人都生成了excel文件,其中不同的块中的数据放置在不同的表格中,并且精美的格式化,而不必使用COM [我想要避免的]操纵excel文件。 任何想法都会非常有帮助。 输出excel文件应该与Office 2003 + Office 2007兼容

如何在asp.net中将此Excel工作表保存为文本文件(.txt)?

我想上传一个Excel工作表并将其保存为文本文件,然后从该文本文件中读取。 我的一个朋友在他的应用程序中这样实现,并且工作正常。 我只是复制他的代码,但它没有正常工作。 它将Excel工作表保存为文本文件,但是当我打开文本文件时,发现数据已损坏,并且出现许多Unicode或奇怪的符号,其中包含许多不必要的行: ; þÿÿÿ þÿÿÿ : ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ASP.NET代码: <asp:FileUpload ID="Upload" runat="server" /> <asp:Button ID="btn_upload" runat="server" Text="Upload" OnClick="UploadButton_Click" /> <asp:Label ID="Label1" runat="server" /> C#代码: protected void UploadButton_Click(object sender, EventArgs e) { if (Upload.HasFile) { try { Upload.SaveAs(Server.MapPath("~/Files/Test_" + DateTime.Now.Year + "_" + DateTime.Now.Month + ".txt")); LabelUpload.Text = "Upload File Name: " + Upload.PostedFile.FileName + […]

在web.config中的oledb c#

我试图使用Excel表格作为我的数据库。 我把它转换成数据表。 当我尝试在我的方法中传递连接string时,它会填充一个exception: inputstring的格式不正确。 我发现错误是在我的Web.Config文件。 我使用了以下configuration: <connectionStrings> <add name ="Excel07ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;Driver={Microsoft Excel Driver(*.xlsx)};DBQ=xlsx HDR={1}'" providerName="System.Data.OleDb"/> </connectionStrings>

我如何更新和保存从asp.net mvc excel文件?

我有一个现有的delphi桌面应用程序,我改写为一个asp.net mvc应用程序。 桌面应用程序有大约120个Excel报告。 这些报告通常有几个命名单元格包含设置信息(客户端ID等),一些数据查询返回到SQL Server数据和几个关键表。 为了生成桌面应用程序的报告,我使用ole自动化 打开报告 用正确的数据填充命名的单元格 使用ActiveWorkbook.RefreshAll()更新查询和数据透视表 保存报告 我想在我的Web应用程序中执行此操作。 但是在服务器上不支持ole自动化,并且不起作用。 我看到的所有的Excel组件都不支持刷新查询和/或关键表。 目前我最好的select似乎是使用一些报告生成器重写报告,并将它们导出为ex​​cel。 然而,生成的文件需要更长的时间才能写入,function更less(没有关键表格),当然还有120个文件。 有关如何使用现有报告的build议? 更新 Excel安装在服务器上,与开发机器上的版本相同。 我的mvc代码是这样的: objApp = new Application(); objBooks = objApp.Workbooks; objBook = objBooks.Open(FileName); objApp.DisplayAlerts = false; // don't warn if pivot table changed objApp.ActiveWorkbook.RefreshAll(); objBook.SaveAs(newFileName); 在开发机器上它工作正常,但在服务器上,它在第一行失败 objApp = new Application(); 与System.UnauthorizedAccessException:检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80070005访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED))。

使用File.WriteAllText()函数创build后,无法读取excel文件

我用datatable函数创build了一个excel表单。 我想用下面的连接string以编程方式读取excel表格。 这个string适用于所有其他excel工作表,但不是我使用函数创build的工作表。 我想这是因为excel版本问题。 OleDbConnection conn= new OleDbConnection("Data Source='" + path +"';provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;";); 任何人都可以提出一种方法,我可以创build一个Excel表格,使它可以再次阅读使用上述查询。 我不能使用Microsoft InterOp库,因为我的主机不支持它。 我甚至改变了不同的编码格式。 仍然没有工作 public void ExportDataSetToExcel(DataTable dt) { HttpResponse response = HttpContext.Current.Response; response.Clear(); response.Charset = "utf-8"; response.ContentEncoding = Encoding.GetEncoding("utf-8"); response.ContentType = "application/vnd.ms-excel"; Random Rand = new Random(); int iNum = Rand.Next(10000, 99999); string extension = ".xls"; string filenamepath = […]

通过ASP.NET和IIS7在服务器上保存Excel工作簿

执行SAVEAS时,以下代码示例会产生相同的错误: Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); filePath = (string.Format("{0}.{1}", Path.GetTempFileName(), "xls")); …做一些东西的工作簿… excelApp.DisplayAlerts = false; excelApp.ActiveWorkbook.SaveAs(filePath) 要么 Missing m = Missing.Value; excelApp.ActiveWorkbook.SaveAs(filePath, m, m,m,m,m, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, m,m,m); 要么 excelApp.ActiveWorkbook.SaveAs(filePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value); 这里是错误:exception: System.Runtime.InteropServices.COMException(0x800A03EC):exception从HRESULT:0x800A03EC在Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs(对象文件名,对象FileFormat,对象密码,对象WriteResPassword,对象ReadOnlyRecommended,在Common.CreateTempExcelFile(DataTable数据)对象CreateBackup,XlSaveAsAccessMode AccessMode,Object ConflictResolution,Object AddToMru,Object TextCodepage,Object TextVisualLayout,Object Local) 我曾在服务器上的Office 2003 interop,但已升级到2007年。没有区别。 顺便说一句,我可以写一个文本文件到相同的文件/path,所以它不是在文件夹上的权限错误。 提前致谢, 吉姆

如何显示窗口提示下载excel文件?

我已经编写了将数据导出到xlsx文件的代码。 但我不明白如何显示窗口提示下载该客户端的xlsx文件。 这是我的代码: Private Sub DataTableToExcel(ByVal tbl As DataTable) Dim Excel As Object = CreateObject("Excel.Application") Dim strFilename As String Dim intCol, intRow As Integer Dim strPath As String = "C:\" If Excel Is Nothing Then MsgBox("It appears that Excel is not installed on this machine. This operation requires MS Excel to be installed on this […]

在asp.net中下载文件后无法显示标签

我在我的asp.net项目中有一个button,点击一个Excel表格获取下载,我也想显示该文件的MD5 hash码。 应用程序工作正常,但标签没有显示,但在debugging时,散列码正在生成,它也成功地分配给标签,但它没有得到显示在前端。 请帮我解决这个问题。 我的代码看起来像这样。 protected void btnDownload_Click(object sender, EventArgs e) { pnlHashCode.Visible = true; lblHashCode.Visible = true; string strURL = "UploadHONMarks.xls"; WebClient req = new WebClient(); pnlHashCode.Visible = true; HttpResponse response = HttpContext.Current.Response; response.Clear(); response.ClearContent(); response.ClearHeaders(); response.Buffer = true; response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", "UploadHONMarks.xls")); Response.ContentType = "Application/x-msexcel"; response.TransmitFile(Server.MapPath(strURL)); string filename = Server.MapPath("UploadHONMarks.xls"); byte[] hashBytes; MD5 md5Hash […]