Просто используйте библиотеку CloseMXL.Excel. Это легко и довольно быстро.
blockquote>Класс
private DataTable getAllList() { string constr = ConfigurationManager.ConnectionStrings["RConnection"].ConnectionString; using (SqlConnection con = new SqlConnection(constr)) { using (SqlCommand cmd = new SqlCommand("SELECT EmpId, gender, EmpName, pOnHold FROM Employee WHERE EmpId= '"+ AnyVariable + "' ORDER BY EmpName")) { using (SqlDataAdapter da = new SqlDataAdapter()) { DataTable dt = new DataTable(); cmd.CommandType = CommandType.Text; cmd.Connection = con; da.SelectCommand = cmd; da.Fill(dt); dt.Columns[0].ColumnName = "Employee Id"; dt.Columns[1].ColumnName = "Gender"; dt.Columns[2].ColumnName = "Employee Name"; dt.Columns[3].ColumnName = "On Hold"; return dt; } } } }
Затем другой метод, который получает набор данных
public DataSet getDataSetExportToExcel() { DataSet ds = new DataSet(); DataTable dtEmp = new DataTable("CLOT List"); dtEmp = getAllList(); ds.Tables.Add(dtEmp); ds.Tables[0].TableName = "Employee"; //If you which to use Mutliple Tabs return ds; }
Теперь вы нажмите кнопку Click Событие
protected void btn_Export_Click(object sender, EventArgs e) { DataSet ds = getDataSetExportToExcel(); using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(ds); wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; wb.Style.Font.Bold = true; Response.Clear(); Response.Buffer = true; Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=EmployeeonHoldList.xlsx"); using (MemoryStream MyMemoryStream = new MemoryStream()) { wb.SaveAs(MyMemoryStream); MyMemoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } } }
Для суммирования ответов и что я нашел до сих пор вот, некоторые хорошие ссылки для ответа на этот вопрос:
, не стесняйтесь дополнять другими ссылками, возможно, некоторые к WinForms-или WPF-приложениям.
Существует хорошая статья от 4 парней [приблизительно 110] Конфигурационная информация Шифрования в ASP.NET 2.0 Приложения
Hope, которой это помогает
@TK: алгоритм хеширования может только быть 'предположен', не перепроектирован. Можно только восстановить вход к значению хэш-функции путем завершенного предположения входа (кроме коллизий, который является), Это может быть сделано трещиной радуги, например (см. реализация взломщика радуги здесь )
я сказал бы, что сторонний инструмент шифрования не более безопасен, чем алгоритмы шифрования платформы.NET, эти библиотеки просто помогают Вам делающий Ваше задание быстрее
Я не использовал его сам, но библиотека Microsoft Enterprise имеет хорошую поддержку шифрования, которая возможно удовлетворит Вашим потребностям: