.net导出数据到excel并保存到本地的源码
发布网友
发布时间:2022-04-08 02:01
我来回答
共3个回答
热心网友
时间:2022-04-08 03:30
/// <summary>
/// 绑定数据库生成XLS报表
/// </summary>
/// <param name="ds">获取DataSet数据集</param>
/// <param name="xlsName">报表表名</param>
private void xlsGridview(DataSet ds, string xlsName)
{
XlsDocument xls = new XlsDocument();
int rowIndex = 1;
int colIndex = 0;
System.Data.DataTable table = ds.Tables[0];
Worksheet sheet = xls.Workbook.Worksheets.AddNamed("信息");//状态栏标题名称
Cells cells = sheet.Cells;
foreach (DataColumn col in table.Columns)
{
colIndex++;
//sheet.Cells.AddValueCell(1,colIndex,col.ColumnName);//添加XLS标题行
Cell cell2 = cells.AddValueCell(1, colIndex, col.ColumnName);
cell2.Font.Bold = true;//设置标题行的字体为粗体
cell2.Font.FontFamily = FontFamilies.Roman;//设置标题行的字体为FontFamilies.Roman
}
foreach (DataRow row in table.Rows)
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in table.Columns)
{
colIndex++;
//sheet.Cells.AddValueCell(rowIndex, colIndex, row[col.ColumnName].ToString());//将数据添加到xls表格里
Cell cell = cells.AddValueCell(rowIndex, colIndex, row[col.ColumnName].ToString());//转换为数字型
//如果你数据库里的数据都是数字的话 最好转换一下,不然导入到Excel里是以字符串形式显示。
cell.Font.FontFamily = FontFamilies.Roman; //字体
cell.Font.Bold = false; //字体为粗体
}
}
xls.Send();
}
//生成报表名称// 按钮响应事件
protected void ExcelSubmit_Click(object sender, EventArgs e)
{
string some_search = "select " ; //查询语句
String strCon = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
SqlConnection con = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter(some_search, con);
DataSet ds = new DataSet();
da.Fill(ds, some_search);
//填冲到XLS中////
xlsGridview(ds, "data");
}
///ASPX页面按钮
<asp:Button ID="ExcelSubmit" runat="server" Text="生成报表"
CssClass="ImageButtonSure" onclick="ExcelSubmit_Click" />
//点按钮直接就实现查询了,生成报表,然后点另存为就可实现查询并生成EXCEL效果。 如果要显示在页面上,我还没有尝试过, 你可以试试,有空的话可以聊聊。
热心网友
时间:2022-04-08 04:48
我有哈!
你首先引入System.io;
然后拖个savafiledialog哈取名叫saveexcel
if (savaexcel.ShowDialog() == DialogResult.OK)
{
string filename = savaexcel.FileName;
string str = string.Empty;
for (int i = 0; i <=listView1.Columns.Count - 1; i++)
{
str += listView1.Columns[i].Text + "\t";
if (i == listView1.Columns.Count - 1)
{
str += "\r";
}
}
for (int i = 0; i < listView1.Items.Count; i++)
{
for (int j = 0; j <= listView1.Columns.Count - 1; j++)
{
str += "'" + listView1.Items [i].SubItems [j].Text + "\t";
if (j == listView1.Columns.Count - 1)
{
str += "\r";
}
}
}
StreamWrite sw= new StreamWriter (filename,true,Encoding.GetEncoding("gb2312"));
sw.Write(str);
sw.Close();
}
祝你成功
热心网友
时间:2022-04-08 06:23
一楼的程序适用于C/S的导出,web里即使引用System.Windows.Forms也不会ShowDialog()成功的