因客户需要,他不想直接在EXCEL中操作。因为 字段实在太多。 然后我要用C# winform做一个小软件 功能是 把字段设定好。然后 在里头对号输入。。比如 卡好字段 姓名 年龄 像填表一样 直接把文本都填近去就是了。然后button把输入进去的东西 导出成EXCEL表
我想问的是不经过数据库能实现么?具体怎么实现?是用DataGridView 还是别的什么?
我想问的是不经过数据库能实现么?具体怎么实现?是用DataGridView 还是别的什么?
http://www.yongfa365.com/Item/DataGridViewToExcel.html
{
System.Web.HttpContext.Current.Response.ClearHeaders(); //导出EXCEL
Response.Clear();
Response.Buffer = true;
Response.Charset = "UTF8";//"GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=Sheet1.xls");
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF8;
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 0
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.GridView1.RenderControl(oHtmlTextWriter);
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
}
/// 导出
/// </summary>
/// <param name="dataGridview1"></param>
public void ExportDataGridViewToExcel(DataGridView dataGridview1)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到"; DateTime now = DateTime.Now;
saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0');
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{ Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridview1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridview1.Columns[i].HeaderText;
}
sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridview1.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridview1.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
if (dataGridview1.Rows[j].Cells[k].Value != null)
{
tempStr += dataGridview1.Rows[j].Cells[k].Value.ToString();
}
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
MessageBox.Show("导出成功");
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
sw.Close();
myStream.Close();
}
}
else
{
MessageBox.Show("您已经取消了打印");
}
}方法很好用 给分吧
DataGridview只是数据的展示 属于UI层的。楼主可以将DataGridview的DataSource放到Excel里面就可以了,没有必要通过数据库,而且没有理由要通过数据库