Tag: asp.net

导出数据到excel文件2003,2007及以上

我正在使用这些连接string,具体取决于文件的扩展名: 对于2003: Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0; 对于2007年: Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0; 这里是获得连接。 string con_excel = ""; switch (Extension.ToLower()) { case ".xls": con_excel = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString; break; case ".xlsx": con_excel = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString; break; } con_excel = con_excel.Replace("filename", filePath); 以下是生成excel文件的代码。 Excel.Application oXL; Excel._Workbook oWB; Excel._Worksheet oSheet; oXL = new Excel.Application(); oXL.Visible = false; oXL.SheetsInNewWorkbook = 1; oWB = (Excel._Workbook)(oXL.Workbooks.Add()); oSheet […]

从HRESULTexception:0x800A03EC添加数据validation

int row_index = 2; foreach (DataRow row in dataTableSourceSystem.Rows) { xlWorkSheet.get_Range("AM" + row_index.ToString(), System.Reflection.Missing.Value).Value2 = row["LookupShortName"].ToString(); row_index++; } Range range = xlWorkSheet.get_Range("G2,G50"); range.Validation.Add(XlDVType.xlValidateList, XlDVAlertStyle.xlValidAlertStop, XlFormatConditionOperator.xlBetween, "=$AM2:$AM50", System.Reflection.Missing.Value); 最后一行是抛出exception0x800A03EC Am2到Am50有值。 任何人都可以请帮忙?

在.NET中高效地生成一个非常大的Excel文件?

我需要从ASP.NET MVC网站生成一个非常大的Excel文件,但使用Open XML SDK运行到内存限制。 有没有一种有效的内存生成方式来生成这样的文件? 作为参考,我试图生成一个大约500,000行,每列20列的电子表格。 数据集本身可以很好地适应内存,但Open XML SDK很快耗尽了所有可用的内存。

导出到Excel不起作用

在使用AngularJS&ASP.NET MVC导出可下载的Excel内容时遇到一些麻烦。 我最终的结果是没有任何反应。 示例ASP.NET控制器方法: [HttpPost] public ActionResult ExportToExcel(Model form) { var gv = new GridView(); gv.DataSource = _service.getSomeStuff(form); gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=Stuff.xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; var sw = new StringWriter(); var htw = new HtmlTextWriter(sw); gv.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); byte[] temp = System.Text.Encoding.UTF8.GetBytes(sw.ToString()); return File(temp, "application/ms-excel"); } Angular […]

能够生成Excel报表并将其推送到客户端计算机,而无需将文件保存在服务器中

目前我从表中获取数据并将其转换为Excel工作簿,然后将其保存在服务器空间中,然后使用Response类将文件推送到客户机。 代码工作正常。 但我有一个想法,不存储在物理存储的文件,因为它增加了服务器存储,并直接推送到客户端机器。 请以任何方式提供build议。 提前致谢。 protected void GenerateExcelFile() { string data = null; int i = 0; int j = 0; Application xlApp; Workbook xlWorkBook; Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(1); DataSet ds = new DataSet(); ds = GetTableData();// Returns dataset for (int k = […]

如何使用DataTable和ExcelLibrary创buildExcel工作表?

我有数据表,其中不包含任何列的date与“date”数据types。 我试过下面的选项 1)第三部分DLL- ExcelLibrary如果数据集中没有date列,那么它工作正常,否则它会使用一些类似-65284的虚拟值而不是date。 ExcelLibrary.DataSetHelper.CreateWorkbook(@"C:\Users\ABC\Documents\Excel\Report123.xls", ds); 2)使用简单的导出格式而不使用第三方DLL public void ExportToExcel(System.Data.DataTable dt) { if (dt.Rows.Count > 0) { string filename = "Report123.xls"; System.IO.StringWriter tw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw); DataGrid dgGrid = new DataGrid(); dgGrid.DataSource = dt; dgGrid.DataBind(); //Get the HTML for the control. dgGrid.RenderControl(hw); //Write the HTML back to the browser. //Response.ContentType […]

如何以“dd MMM yyyy”格式在导出的Excel中显示数据表的date字段

我可以在dd MMM yyyy(29 Oct 2015)的 GridView中显示date字段值。 导出到Excel后,date字段值格式将更改为: dd-MMM-yy(29-Oct-15)。 我的代码: Protected Sub btnExportData_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles btnExportData.ServerClick Try Dim str As String str = HiddenFilterString.Value Dim dtExportData As New DataTable Dim dtTemp As New DataTable Dim dg As New DataGrid dtTemp = DirectCast(Session("dtSoHoManageSecretServerFoldersExportData"), DataTable) dtExportData = dtTemp.Copy() Dim dv As New […]

从Excel文件只有1列被添加到我的MySQLDB

我试图从Excel文件插入数据到MySQL数据库。 它的工作原理,但问题是,它只插入1列。 我需要插入我的Excel文件中的所有列 这是我的代码 protected void add_Click(object sender, EventArgs e) { if (importfile.HasFile) { string path = string.Concat((Server.MapPath("~/temp/" + importfile.FileName))); importfile.PostedFile.SaveAs(path); OleDbConnection oleConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 8.0;"); OleDbCommand oleCmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oleConn); OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCmd); DataSet ds = new DataSet(); oleAdapter.Fill(ds); DataTable Dt […]

iText夏普在合并Excel文件

我使用iText Sharp将两个PDF文件合并成一个PDF文件。 但是,是否有可能使用iText Sharp将excel文件合并为PDF文件? 我尝试了很多次,但它不适合我。这是我的PDF合并代码: protected void btnMerge_Click(object sender, EventArgs e) { if (file1.HasFile && file2.HasFile) { PdfReader pdfReader1 = new PdfReader(file1.PostedFile.InputStream); PdfReader pdfReader2 = new PdfReader(file2.PostedFile.InputStream); List<PdfReader> readerList = new List<PdfReader>(); readerList.Add(pdfReader1); readerList.Add(pdfReader2); //Define a new output document and its size, type Document document = new Document(PageSize.A4, 0, 0, 0, 0); //Get instance response […]

SQL注入漏洞与Excel导入

我一直在研究为ASP.NET WebForms应用程序生成的安全报告。 我们的代码中的某些区域已被注意到是潜在的SQL注入漏洞。 我一直在我们的代码库中查看这些领域,他们似乎都是我们正在导入excel工作簿的地方。 有问题的代码似乎是当我们正在尝试基于工作簿中的第一个工作表的名称创build一个OleDbCommand。 我们正在使用OleDbConnection对象连接数据库(Excel工作表),该对象读取数据库模式以查找第一个工作表的名称。 然后我们使用这个名字dynamic地构造一个SQL命令。 示例代码可能如下所示: String connectionString = String.Format( "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};" + "Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1\"", sFullPath); OleDbConnection conn = new OleDbConnection(connectionString); conn.Open(); DataTable dbSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string firstSheetName = dbSchema.Rows[0]["TABLE_NAME"].ToString(); using (OleDbCommand command = new OleDbCommand("SELECT * FROM [" + firstSheetName+ "]", conn)) // Offending line of code 为了修复这个SQL注入漏洞,我一直在寻找上述代码的替代品。 有没有人有任何想法,我可以执行此操作,而不被标记为SQL注入漏洞? 我不想使用ActiveX […]