下面这个是我目前用的导出excel程序,结果发现第一列的数据竟然是编号,不是我数据库里的数据,这是为什么 ??请高手快来帮我看看!!急用.... public static void getExcel(DataTable dt ,string FileName)//导出Excel
{
//开始文件名
FileStream objFileStream;
StreamWriter objStreamWriter;
string strLine = "";
objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Default); //插入标题
for (int i = 0; i < dt.Columns.Count; i++)
{
strLine = strLine + dt.Columns[i].ColumnName.ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = ""; //开始插入数据
for (int i = 0; i < dt.Rows.Count; i++)
{
strLine = strLine + (i + 1) + Convert.ToChar(9);
for (int j = 1; j < dt.Columns.Count; j++)
{
strLine = strLine + dt.Rows[i][j].ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = "";
}
objStreamWriter.Close();
objFileStream.Close();
}
{
//开始文件名
FileStream objFileStream;
StreamWriter objStreamWriter;
string strLine = "";
objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Default); //插入标题
for (int i = 0; i < dt.Columns.Count; i++)
{
strLine = strLine + dt.Columns[i].ColumnName.ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = ""; //开始插入数据
for (int i = 0; i < dt.Rows.Count; i++)
{
strLine = strLine + (i + 1) + Convert.ToChar(9);
for (int j = 1; j < dt.Columns.Count; j++)
{
strLine = strLine + dt.Rows[i][j].ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = "";
}
objStreamWriter.Close();
objFileStream.Close();
}
解决方案 »
- 如何将汉字转换为西欧编码
- C经典例程也有垃圾语句??
- 如何关闭Image.FromFile(filePath)打开的文件?
- 今天去一家公司的c#上机测试题,哪位大哥帮我做下呀。急呀
- 是不是错的很离谱?我是个新手,
- 请问在 C# 下怎样在激活一个窗口的时候同时激活另一个窗口
- 在C#加WebForm程序时,使用WebControls.TreeView控件,为什么我在代码中的treeNode.Expand=True的语句不激发Expand事件
- c# 给窗体加上背景图之后很卡,怎么解决
- 客户端访问WebService时有时莫名的卡在哪里,怎么解决
- 工作流、审批流
- 求解.net(C#) 生成静态页面的问题
- 请教各位,如何用C#或者js判断某个值是否是百分比(率)?
private void cmdExcel_Click(object sender, EventArgs e)
{
if (dgvBase.Rows.Count == 0)
{
MessageBox.Show("没有要转出的调度日志记录");
}
else
{
threadExcel = new Thread(ToExcel);
threadExcel.IsBackground = true;
threadExcel.Start();
}
} /// 转出Excel
/// </summary>
private void ToExcel()
{
try
{
Excel.Application excel = new Excel.Application();
if (excel == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
return;
}
excel.Visible = false;
excel.Application.Workbooks.Add(true);
excel.Cells[1, 1] = " 运 输 调 度 日 志";
for (int i = 0; i < dgvBase.ColumnCount; i++)
{
excel.Cells[2, i + 1] = dgvBase.Columns[i].HeaderText;
}
for (int i = 0; i < dgvBase.RowCount - 1; i++)
{
for (int j = 0; j < dgvBase.ColumnCount; j++)
{
if (dgvBase[j, i].ValueType == typeof(string))
{
excel.Cells[i + 3, j + 1] = dgvBase[j, i].Value;
}
else
{
excel.Cells[i + 3, j + 1] = dgvBase[j, i].Value.ToString();
}
}
}
//设定单元格边框\列的宽度\字体、对齐方式等
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, 18]).Font.Size = 16;//字体大小
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, 18]).Font.Bold = true;//粗体
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, 18]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//对齐方式
excel.get_Range(excel.Cells[2, 1], excel.Cells[dgvBase.RowCount + 1, dgvBase.ColumnCount]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
excel.get_Range(excel.Cells[1, 1], excel.Cells[1, 18]).MergeCells = true;//合并单元格
excel.get_Range(excel.Cells[1, 1], excel.Cells[dgvBase.RowCount + 1, dgvBase.ColumnCount]).Borders.LineStyle = Excel.XlLineStyle.xlContinuous;//边框样式
excel.get_Range(excel.Cells[2, 3], excel.Cells[dgvBase.RowCount + 2, 3]).ColumnWidth = 13;//列宽
excel.get_Range(excel.Cells[2,9],excel.Cells[dgvBase.RowCount+2,9]).ColumnWidth =18;
excel.get_Range(excel.Cells[2,10],excel.Cells[dgvBase.RowCount+2,10]).ColumnWidth =18;
excel.get_Range(excel.Cells[2,12],excel.Cells[dgvBase.RowCount+2,12]).ColumnWidth =18;
excel.get_Range(excel.Cells[2, 15], excel.Cells[dgvBase.RowCount + 2, 15]).ColumnWidth = 11;
excel.Visible = true;
//excel.Quit();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
threadExcel.Abort();
threadExcel.Join(5000);
GC.Collect(); }
}
private void ExportToExcel(DataTable dt, string filename)
{
if (dt != null && dt.Rows.Count > 0)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
StringWriter sw = new StringWriter();
sw.WriteLine("学号\t姓名\t课程\t教学班");
foreach (DataRow row in dt.Rows)
{
string strlist = row["fStudentNo"].ToString() + "\t" + row["fUserName"].ToString() + "\t" + row["fCourseName"].ToString() + "\t" + row["fName"].ToString();
sw.WriteLine(strlist);
}
resp.Write(sw);
resp.End();
}
}
{
//开始文件名
FileStream objFileStream;
StreamWriter objStreamWriter;
string strLine = "";
objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);
objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Default); //插入标题
for (int i = 0; i < dt.Columns.Count; i++)
{
strLine = strLine + dt.Columns[i].ColumnName.ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = ""; //开始插入数据
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
strLine = strLine + dt.Rows[i][j].ToString() + Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine = "";
}
objStreamWriter.Close();
objFileStream.Close();
}