Tag: asp.net

使用EPPlus和SqlBulkCopy将Excel数据获取到SQL表

我已经添加了EPPlus库到我的解决scheme。 我似乎无法弄清楚如何让我的Excel数据成为一个数据表,这将允许我的批量复制工作。 下面的代码不起作用。 任何人都可以帮我按摩这个地方? 预先感谢您的帮助。 我在下面的“泥瓦匠”的评论后编辑了这个。 try { //// open file var excel = Request.Files[0]; var file = Path.Combine(Server.MapPath("~/Uploads/"), excel.FileName); var sqlConnectionString = ConfigurationManager.ConnectionStrings["MyDB"].ToString(); // Get the datatable from procedure on Utility.cs page var datapush = Utility.ImportToDataTable(file, "Sheet1"); // open connection to sql and use bulk copy to write excelData to my table using (var […]

DocumentFormat.OpenXml.dll中发生types“System.OutOfMemoryException”的exception

我必须在excel中存储大约315k行数据,每行15列,并使其可供下载。 我正在检索所有数据,然后将其存储在数据表中,然后使用OpenXml将其写入工作簿并发送响应。 但是由于数据量巨大,我得到一个exceptionSystem.OutOfMemoryExceptionexception。 当我通过检索大约100klogging来尝试它时,整个工作正常,没有任何错误。 我在这里看到过类似的问题,但它是用FileStream ,因此MemoryStream的大小是dynamic设置的 MemoryStream memory = new MemoryStream(fileStream.size()) 我想知道是否有办法用DataTable来做到这一点。 我相信更新excel工作表逐行将是一个选项,但将包括检查数据types等的很多代码。 另外,通过与“File being corrupt”的合作,我遇到了很多问题。 因此,我更喜欢一个xlsx文件。 protected void DownloadDetailTable_OnClick(object sender, EventArgs e) { string value = ddl_AuditEnvironment.SelectedValue; String connectionString = ConfigurationManager.ConnectionStrings["stagingConnection"].ConnectionString; // DataTable that stores the result set to be written on an excel. DataTable dataTableObj = GetAuditData.GetDetailsTable(value, connectionString); string attachment = "attachment; filename=Summary.xlsx"; […]

读取Excel或OpenOffice(.ods)文件使用ActiveXObject(JavaScript)

在我的系统中,我没有MS Office,我有Openoffice。 这里我的要求是我想用ActiveXObject(JavaScript)读取.xls .xlsx和.ods文件。通过使用下面的代码,我只能读取.xls文件。在这里如何读取所有types的ActiveX对象的Excel文件? <script type="text/javascript"> function ReadMyFile() { var ControlCn = new ActiveXObject("ADODB.Connection"); var Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = D:\\DailyReport.ods; Persist Security Info=False;Extended Properties=Excel 8.0;"; ControlCn.Open(Conn); var rs = new ActiveXObject("ADODB.Recordset"); var SQL = "select * from [Sheet1$]"; rs.Open(SQL, ControlCn); if(rs.bof) { document.write('No Data Avaliable'); } if(!rs.bof) { rs.MoveFirst() while(!rs.eof) { for(var i=0; i!= […]

如何使用asp.net mvc将数据导出到excel时将checkbox转换为gridview中的string值?

如何使用asp.net mvc将数据导出到excel时将checkbox转换为gridview中的string值? 模型:公共类empViewmodel { public int id { get; set; } public string name { get; set; } public string address { get; set; } public bool male{ get; set; } public Nullable<int> city_id { get; set; } } 控制器: public ActionResult export1(emplyeeModel em) { var grid = new GridView(); grid.DataSource = e1.getlist(em); grid.DataBind(); Response.ClearContent(); […]

如何在将数据表导出到.xls文件时在asp.net中加粗string响应

嗨,这是我的代码,它工作正常。 我有一个数据表,我将它转换成.xls文件。 我使用了这个Response.Write(tab + "<b>" + dc.ColumnName + "</b>"); 我想使它大胆 string attachment = "attachment; filename=" + filename; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.ms-excel"; string tab = ""; foreach (DataColumn dc in dataTable.Columns) { Response.Write(tab + "<b>" + dc.ColumnName + "</b>"); tab = "\t"; } Response.Write("\n"); int i; foreach (DataRow dr in dataTable.Rows) { tab = […]

如何在Excel中读取下拉列表的值并添加到数据表C#

你好,我面临以下问题:我有一个Excel文件,有一些单元格下拉列表。 我正在尝试读取excel并将其添加到数据表单以便操作数据。 我已经设法读取excel并将其添加到数据库,但我的方法读取的所有与dropdownlist的单元格的值,它不只读取所选的一个。 例如,我给了一个单元格的三个值(1,2,3),单元格的值为1.我的方法读取excel,并将不同行中的所有值添加到数据表中。 所以它增加了1,2,3。 你可以看到我的代码如下: protected void ddlReviewStatus_SelectedIndexChanged(object sender, EventArgs e) { string date = DateTime.Now.ToShortDateString(); string finalDate = date.Replace("/", ""); string fileName = "test.xlsx"; DropDownList ddlReviewStatus = sender as DropDownList; GridViewRow row = (GridViewRow)ddlReviewStatus.NamingContainer; string companyName = ((Label)row.FindControl("lblCompName")).Text; string filePath = ReportTemplatesPath + "\\" + companyName + "\\" + finalDate + "\\" + […]

无需知道扩展名即可下载文件

我有一个Excel文件,每行都有一个名为id的列,其中包含一个链接值,用于打开其他文件(id)没有的扩展名。 问题是,我导入的SQL Serverpipe理的excel文件,现在的链接是没有扩展名的string,我希望它在asp.net页面的网格视图中显示为链接,以打开指定的文件… 要提到的是数据库中至less有700行。 提前致谢!

同时写入数据到Excel我得到错误System.OutOfMemoryException

在debugging时,我得到了错误'((Microsoft.Office.Interop.Excel.Range)(xlWorkSheet.Cells))。Value2'抛出了一个types为“System.OutOfMemoryException”的exception。 我在下面debugging的时候指定了出错的地方。 我正在读取行和列,并在Excel中的特定位置,我试图插入一个数据。 public static void Update_Daily_Resolution(string Daily_Resolution_Path, List<Summary> Flux, List<Summary> Active,List<Summary> OnHold) { xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(Daily_Resolution_Path, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item("April 15 – 21"); range = xlWorkSheet.UsedRange; for (int i = 1; i <= range.Rows.Count; i++) //updation of […]

使用Open sdk xml从数据表中导出excel

我正在使用开放的XML SDK导出数据到Excel。 现在我想要的数据直接导出使用数据表,而不是通过使用网格视图,当我给数据表直接到wb.Worksheets.Add(DT)它给工作表名称exception,其次,我想保存文件到一些位置,而不是下载我的代码在下面。 DataTable dt = new DataTable("GridView_Data"); foreach (TableCell cell in GridView1.HeaderRow.Cells) { dt.Columns.Add(cell.Text); } foreach (GridViewRow row in GridView1.Rows) { dt.Rows.Add(); for (int i = 0; i < row.Cells.Count; i++) { dt.Rows[dt.Rows.Count – 1][i] = row.Cells[i].Text; } } using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(dt); Response.Clear(); Response.Buffer = true; Response.Charset = ""; […]

不可读的Excel内容Epplus

我正在发布Post请求并收到来自终点的响应,通过这个响应我收到了excel的内容。 我已经使用过这个结束点,并试图绑定一个电子邮件工作,这工作正常。 (符合终点响应是明确的)。 现在有了一个不同的要求,我需要对这个终点进行调用,然后下载excel文件.xlsx文件,这样生成的文件就被破坏了,而我的excel文件一旦下载就试图恢复。 走了不同的线路,并尝试几乎所有的东西。 似乎没有任何工作。 试试1: Response.Clear(); stream.Flush(); stream.Seek(0, SeekOrigin.Begin); return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", fileName.Replace("\"", String.Empty)); 而debugging时,我已经确保closures响应。 (到Response.End())。 甚至添加了明确的标题 Response.AddHeader("content-disposition", "attachment; filename=\"" fileName".xlsx\""); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 试试2 有明确的写入memoryStream到响应。 Response.BinaryWrite(tgtBytes); 确保Response.Clear在写入响应和确定memoryStream.dispose和Response.End之前。 甚至用过。 Response.ClearHeaders()。 试试 – 3。 而不是MemoryStream,尝试与文件stream,保存在文件中,并从写入的文件下载。 问题依然存在。 我得到一个binaryStream作为响应,没有编码在做,因为它不是hex值。 或者stream被破坏(这可能不是这种情况,因为我使用终点来满足不同的需求),或者响应被破坏。 我应该如何检查确切的原因是什么? 请让我知道还有什么我可以尝试。