DataSet导出到Excel (c#)
来源:互联网 发布:淘宝网中老年棉鞋 编辑:程序博客网 时间:2024/05/21 23:32
private bool outExcel(string fn, DataSet ds)
{
const int START_ROW = 2; //开始行
const int START_COL = 1; //开始列
int iRows = 0;
int iColumns = 0;
System.Data.DataTable dt = new System.Data.DataTable();
dt = (System.Data.DataTable)ds.Tables["t1"];
iRows = dt.Rows.Count; //获得记录行数
iColumns = dt.Columns.Count; //获得记录列数
if (iRows <= 0) { MessageBox.Show("无记录,无法导出报表!"); return false; }
try
{
Excel.Application excel = new Excel.ApplicationClass();
Excel.Workbooks Wbs = (Excel.Workbooks)excel.Workbooks;
Excel.Workbook xBk = (Excel.Workbook)(Wbs.Add(miss));
Excel.Worksheet xSt = (Excel.Worksheet)xBk.ActiveSheet;
Excel.Range excelCell = null;
excel.ScreenUpdating = false; //关屏幕更新
excel.Visible = false; //禁止显示excel
excel.DisplayAlerts = false; //禁止警告
//添加列
for (int lc = 0; lc <= iColumns - 1; lc++)
{
((Excel.Range)xSt.Cells[START_ROW - 1, lc + START_COL]).FormulaR1C1 = dt.Columns[lc].ToString();
((Excel.Range)xSt.Cells[START_ROW - 1, lc + START_COL]).Font.Bold = true; //粗体
((Excel.Range)xSt.Cells[START_ROW - 1, lc + START_COL]).Borders.LineStyle = 1; //设置边框
((Excel.Range)xSt.Cells[START_ROW - 1, lc + START_COL]).VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; //水平居中
((Excel.Range)xSt.Cells[START_ROW - 1, lc + START_COL]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; //垂直居中
}
//添加行记录
for (int i = 0; i <= iRows - 1; i++)
for (int j = 0; j <= iColumns - 1; j++)
{
//((Excel.Range)xSt.Cells[i + START_ROW, j + START_COL]).NumberFormat = "#";
((Excel.Range)xSt.Cells[i + START_ROW, j + START_COL]).FormulaR1C1 = dt.Rows[i].ItemArray.GetValue(j);
((Excel.Range)xSt.Cells[i + START_ROW, j + START_COL]).Borders.LineStyle = 1;
}
excelCell = xSt.get_Range(excel.Cells[START_ROW, START_COL], excel.Cells[iRows + START_ROW, START_COL + 2]); //get_Range方法为区域选择
excelCell.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
excelCell.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
excelCell = xSt.get_Range(excel.Cells[1, 1], excel.Cells[iRows, iColumns]);
excelCell.Columns.AutoFit();
excel.ScreenUpdating = true;
xBk.SaveAs(fn, miss, miss, miss, miss, miss, Excel.XlSaveAsAccessMode.xlNoChange, Excel.XlSaveConflictResolution.xlLocalSessionChanges, miss, miss, miss, miss); //另存为
KillSpecialExcel(excel); //结束excel进程
return true;
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
return false;
}
}
Kill Special Excel Process#region Kill Special Excel Process
[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);
public void KillSpecialExcel(Excel.Application m_objExcel)
{
try
{
if (m_objExcel != null)
{
int lpdwProcessId;
GetWindowThreadProcessId(new IntPtr(m_objExcel.Hwnd), out lpdwProcessId);
System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
}
}
catch (Exception ex)
{
Console.WriteLine("Delete Excel Process Error:" + ex.Message);
}
}
#endregion
- DataSet导出到Excel (c#)
- Dataset导出到excel
- DataSet导出到Excel
- dataset 导出到 excel
- [C#]网格数据导出到Excel,Excel转DataSet
- WinForm导出DataSet到Excel
- ASP.NET(C#) DataSet数据导出到Excel
- 将Dataset数据导出到Excel中(ASP.NET/C#)
- 将Dataset数据导出到Excel中(ASP.NET/C#)
- DataSet导出 到Excel 截取导出
- Excel编程之Dataset导出到excel
- GridView(DataSet)导出数据到Excel文件代码C#
- 将DataSet导出到Excel文件中
- Delphi从DataSet导出到Excel
- 从DataSet导出数据到excel!!
- 导出Dataset到Excel,并保持格式。
- 数据集DataSet导出到Excel
- GridView DataSet、Control 导出到 Excel
- SQL10007N Message "-1390" could not be retrieved. Reason code: "3"
- HDU 1247 Hat’s Words
- 汇编揭秘C语言中的参数传递问题
- jstl 换行
- 诗组:后青春 葬礼
- DataSet导出到Excel (c#)
- java泛型、泛型的内部原理:类型擦除以及类型擦除带来的问题
- JS中null,false,0,""和undefined
- javascript 获取checkbox复选框实例
- HTML--js获取鼠标点击坐标
- HDOJ题目1875畅通工程再续(基础最小生成树)
- ibatis查询异常记录
- .NET WINFORM release拷到干净的客户机报未能加载文件或程序集"System.Web, Version=4.0.0.0"
- PHP关于文件的一些基本操作