关键词:
【中文标题】将数据表导出到 Excel 文件【英文标题】:Export DataTable to Excel File 【发布时间】:2009-11-17 05:02:29 【问题描述】:我有一个包含 30 多列和 6500 多行的 DataTable。我需要将整个 DataTable 值转储到 Excel 文件中。任何人都可以帮忙处理 C# 代码。我需要每个列值都在一个单元格中。准确地说,我需要 Excel 文件中与 DataTable 完全相同的副本。请帮忙。
谢谢, 波动率
【问题讨论】:
你可以试试这里描述的技术:C-Sharp Corner 几乎所有的答案都在这里写一个(HtmlTextWriter)字符串或有互操作代码。两者都不要使用。这将导致您稍后在 DateTime 和 Decimal 格式方面出现问题。 Excel 也会发出警告,因为您生成的不是“真正的”Excel 文件,而是扩展名为 .xls 的 HTML 页面。开始使用专门的库来创建 Excel 文件,例如 EPPlus。 Example here 和 here. 【参考方案1】:使用此代码...
dt = city.GetAllCity();//your datatable
string attachment = "attachment; filename=city.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
foreach (DataColumn dc in dt.Columns)
Response.Write(tab + dc.ColumnName);
tab = "\t";
Response.Write("\n");
int i;
foreach (DataRow dr in dt.Rows)
tab = "";
for (i = 0; i < dt.Columns.Count; i++)
Response.Write(tab + dr[i].ToString());
tab = "\t";
Response.Write("\n");
Response.End();
【讨论】:
在我在网上遇到的所有复杂的文章中,我很高兴找到一个简短而简单的解决方案。非常感谢! 有什么建议可以强制 Excel 将所有字段视为字符串,而不管数据如何?例如,不要删除 '0000012' 中的前导零。我尝试在值前加上撇号,但撇号出现在电子表格中。 为什么这实际上对我没有任何作用?即使我逐字复制它,它也不会下载文件...... 用什么来合并单元格? \t 用于移动到同一行的新单元格,\n 用于移动到新行, 此代码下载一个 CSV 文件,没有任何格式;如果您在合并单元格、背景单元格颜色等方面需要更大的灵活性,您应该阅读此问题的其他答案。【参考方案2】:这个 sn-p 可以更快地实现:
// Example data
DataTable table = new DataTable();
table.Columns.AddRange(new[] new DataColumn("Key"), new DataColumn("Value") );
foreach (string name in Request.ServerVariables)
table.Rows.Add(name, Request.ServerVariables[name]);
// This actually makes your HTML output to be downloaded as .xls file
Response.Clear();
Response.ClearContent();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=ExcelFile.xls");
// Create a dynamic control, populate and render it
GridView excel = new GridView();
excel.DataSource = table;
excel.DataBind();
excel.RenderControl(new HtmlTextWriter(Response.Output));
Response.Flush();
Response.End();
【讨论】:
这对我不起作用,它是输出 excel 文件,但它包含与 https 协议相关的表,如(SERVER_PORT_SECURE, SERVER_PROTOCOL,SERVER_SOFTWARE)
并认为我真的不知道它是什么......这似乎更好,因为我们这样做了不需要覆盖VerifyRenderingInServerForm
...你能帮我吗??
我错过了什么?我将该代码放入方法中并从按钮onclick
事件调用它
我需要退货吗?
@chungtinhlakho,这个方法渲染一个 HTML 表格并写入响应流;如果您遇到不同的问题,请提出一个新问题;)【参考方案3】:
以下链接用于在 C# 代码中将数据表导出到 excel。
http://royalarun.blogspot.in/2012/01/export-datatable-to-excel-in-c-windows.html
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
namespace ExportExcel
public partial class ExportDatatabletoExcel : Form
public ExportDatatabletoExcel()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
DataTable dt = new DataTable();
//Add Datacolumn
DataColumn workCol = dt.Columns.Add("FirstName", typeof(String));
dt.Columns.Add("LastName", typeof(String));
dt.Columns.Add("Blog", typeof(String));
dt.Columns.Add("City", typeof(String));
dt.Columns.Add("Country", typeof(String));
//Add in the datarow
DataRow newRow = dt.NewRow();
newRow["firstname"] = "Arun";
newRow["lastname"] = "Prakash";
newRow["Blog"] = "http://royalarun.blogspot.com/";
newRow["city"] = "Coimbatore";
newRow["country"] = "India";
dt.Rows.Add(newRow);
//open file
StreamWriter wr = new StreamWriter(@"D:\\Book1.xls");
try
for (int i = 0; i < dt.Columns.Count; i++)
wr.Write(dt.Columns[i].ToString().ToUpper() + "\t");
wr.WriteLine();
//write rows to excel file
for (int i = 0; i < (dt.Rows.Count); i++)
for (int j = 0; j < dt.Columns.Count; j++)
if (dt.Rows[i][j] != null)
wr.Write(Convert.ToString(dt.Rows[i][j]) + "\t");
else
wr.Write("\t");
//go to next line
wr.WriteLine();
//close file
wr.Close();
catch (Exception ex)
throw ex;
【讨论】:
其实不是excel创建程序。它以制表符分隔的形式生成纯文本,并将数据保存在具有 .xls 扩展名的文件中。由于 Microsoft Excel 软件知道打开 .此类文件,因此人们认为它是一个 excel 文档。在任何纯文本编辑器(例如“记事本”或“EditPlus”)中打开相同的文件,您就会了解。 Microsoft Excel 文档遵循 OLE 原则。我希望这对尝试关注此主题的人有所帮助。【参考方案4】:这篇文章中排名最高的答案,但它是 CSV 文件。它不是实际的 Excel 文件。因此,您在打开文件时会收到警告。
我在网上找到的最佳解决方案是使用 CloseXML https://github.com/closedxml/closedxml 您还需要打开 XML。
dt = city.GetAllCity();//your datatable
using (XLWorkbook wb = new XLWorkbook())
wb.Worksheets.Add(dt);
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=GridView.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
信用:http://www.aspsnippets.com/Articles/Solution-ASPNet-GridView-Export-to-Excel-The-file-you-are-trying-to-open-is-in-a-different-format-than-specified-by-the-file-extension.aspx
【讨论】:
@jefissu 似乎关闭的 XML 已经知道旧版本的 .Net 框架存在问题github.com/ClosedXML/ClosedXML/issues/450【参考方案5】:我在页面中使用了这个。`
public void DTToExcel(DataTable dt)
// dosya isimleri ileride aynı anda birden fazla kullanıcı aynı dosya üzerinde işlem yapmak ister düşüncesiyle guid yapıldı.
string FileName = Guid.NewGuid().ToString();
FileInfo f = new FileInfo(Server.MapPath("Downloads") + string.Format("\\0.xlsx", FileName));
if (f.Exists)
f.Delete(); // delete the file if it already exist.
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearHeaders();
response.ClearContent();
response.Charset = Encoding.UTF8.WebName;
response.AddHeader("content-disposition", "attachment; filename=" + FileName + ".xls");
response.AddHeader("Content-Type", "application/Excel");
response.ContentType = "application/vnd.xlsx";
//response.AddHeader("Content-Length", file.Length.ToString());
// create a string writer
using (StringWriter sw = new StringWriter())
using (HtmlTextWriter htw = new HtmlTextWriter(sw)) //datatable'a aldığımız sorguyu bir datagrid'e atayıp html'e çevir.
// instantiate a datagrid
DataGrid dg = new DataGrid();
dg.DataSource = dt;
dg.DataBind();
dg.RenderControl(htw);
response.Write(sw.ToString());
dg.Dispose();
dt.Dispose();
response.End();
【讨论】:
感谢 Volkan 这是最好的方法,因为我们不需要覆盖VerifyRenderingInServerForm
.... Volkan 我非常感谢您在每行设置 cmets 来解释正在发生的事情,这对其他人有用太.. 亲爱的搜索者,我推荐这种方式
Volkan 亲爱的,当我取消注释该行时...我收到错误我试图理解这是目的吗? //response.AddHeader("Content-Length", file.Length.ToString());
我已经为我理解的行添加了一些评论,请提供更多...非常感谢【参考方案6】:
var lines = new List<string>();
string[] columnNames = dt.Columns.Cast<DataColumn>().
Select(column => column.ColumnName).
ToArray();
var header = string.Join(",", columnNames);
lines.Add(header);
var valueLines = dt.AsEnumerable()
.Select(row => string.Join(",", row.ItemArray));
lines.AddRange(valueLines);
File.WriteAllLines("excel.csv", lines);
这里的 dt 指的是你的 DataTable 传递作为参数
【讨论】:
【参考方案7】:虽然不是 .NET 实现,但您可能会发现插件 TableTools
可能非常有效,具体取决于您的受众。它依赖于闪存,对于大多数需要实际深入工作然后想要记录表格信息的情况来说,这应该不是问题。
最新版本似乎支持复制到剪贴板、CSV、“.XLS”(实际上只是一个名为 .xls 的制表符分隔文件)、PDF,或创建显示所有行的打印友好页面版本,并且隐藏页面的其余内容。
我在 DataTables 网站上找到了扩展程序:http://datatables.net/extras/tabletools/
可在此处的插件(附加)页面下载:http://datatables.net/extras/
据说它是作为 DataTables 的一部分下载的(因此有短语“DataTables 包中包含的附加内容”),但我在一直使用的下载中没有找到它。看起来效果很好!
【讨论】:
【参考方案8】:在 Excel 中打开时,大多数答案实际上是生成我并不总是有很好经验的 CSV。
使用ACE OLEDB Provider 也是一种方法(另请参阅connection strings for Excel)。当然,您必须安装并注册提供程序。如果您安装了 Excel,您确实拥有它,但这是您在部署时必须考虑的事情(例如在 Web 服务器上)。
在下面的帮助类代码中,你必须调用类似ExportHelper.CreateXlsFromDataTable(dataset.Tables[0], @"C:\tmp\export.xls");
public class ExportHelper
private const string ExcelOleDbConnectionStringTemplate = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=0;Extended Properties=\"Excel 8.0;HDR=YES\";";
/// <summary>
/// Creates the Excel file from items in DataTable and writes them to specified output file.
/// </summary>
public static void CreateXlsFromDataTable(DataTable dataTable, string fullFilePath)
string createTableWithHeaderScript = GenerateCreateTableCommand(dataTable);
using (var conn = new OleDbConnection(String.Format(ExcelOleDbConnectionStringTemplate, fullFilePath)))
if (conn.State != ConnectionState.Open)
conn.Open();
OleDbCommand cmd = new OleDbCommand(createTableWithHeaderScript, conn);
cmd.ExecuteNonQuery();
foreach (DataRow dataExportRow in dataTable.Rows)
AddNewRow(conn, dataExportRow);
private static void AddNewRow(OleDbConnection conn, DataRow dataRow)
string insertCmd = GenerateInsertRowCommand(dataRow);
using (OleDbCommand cmd = new OleDbCommand(insertCmd, conn))
AddParametersWithValue(cmd, dataRow);
cmd.ExecuteNonQuery();
/// <summary>
/// Generates the insert row command.
/// </summary>
private static string GenerateInsertRowCommand(DataRow dataRow)
var stringBuilder = new StringBuilder();
var columns = dataRow.Table.Columns.Cast<DataColumn>().ToList();
var columnNamesCommaSeparated = string.Join(",", columns.Select(x => x.Caption));
var questionmarkCommaSeparated = string.Join(",", columns.Select(x => "?"));
stringBuilder.AppendFormat("INSERT INTO [0] (", dataRow.Table.TableName);
stringBuilder.Append(columnNamesCommaSeparated);
stringBuilder.Append(") VALUES(");
stringBuilder.Append(questionmarkCommaSeparated);
stringBuilder.Append(")");
return stringBuilder.ToString();
/// <summary>
/// Adds the parameters with value.
/// </summary>
private static void AddParametersWithValue(OleDbCommand cmd, DataRow dataRow)
var paramNumber = 1;
for (int i = 0; i <= dataRow.Table.Columns.Count - 1; i++)
if (!ReferenceEquals(dataRow.Table.Columns[i].DataType, typeof(int)) && !ReferenceEquals(dataRow.Table.Columns[i].DataType, typeof(decimal)))
cmd.Parameters.AddWithValue("@p" + paramNumber, dataRow[i].ToString().Replace("'", "''"));
else
object value = GetParameterValue(dataRow[i]);
OleDbParameter parameter = cmd.Parameters.AddWithValue("@p" + paramNumber, value);
if (value is decimal)
parameter.OleDbType = OleDbType.Currency;
paramNumber = paramNumber + 1;
/// <summary>
/// Gets the formatted value for the OleDbParameter.
/// </summary>
private static object GetParameterValue(object value)
if (value is string)
return value.ToString().Replace("'", "''");
return value;
private static string GenerateCreateTableCommand(DataTable tableDefination)
StringBuilder stringBuilder = new StringBuilder();
bool firstcol = true;
stringBuilder.AppendFormat("CREATE TABLE [0] (", tableDefination.TableName);
foreach (DataColumn tableColumn in tableDefination.Columns)
if (!firstcol)
stringBuilder.Append(", ");
firstcol = false;
string columnDataType = "CHAR(255)";
switch (tableColumn.DataType.Name)
case "String":
columnDataType = "CHAR(255)";
break;
case "Int32":
columnDataType = "INTEGER";
break;
case "Decimal":
// Use currency instead of decimal because of bug described at
// http://social.msdn.microsoft.com/Forums/vstudio/en-US/5d6248a5-ef00-4f46-be9d-853207656bcc/localization-trouble-with-oledbparameter-and-decimal?forum=csharpgeneral
columnDataType = "CURRENCY";
break;
stringBuilder.AppendFormat("0 1", tableColumn.ColumnName, columnDataType);
stringBuilder.Append(")");
return stringBuilder.ToString();
【讨论】:
【参考方案9】:Excel 导出的工作代码
try
DataTable dt = DS.Tables[0];
string attachment = "attachment; filename=log.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
foreach (DataColumn dc in dt.Columns)
Response.Write(tab + dc.ColumnName);
tab = "\t";
Response.Write("\n");
int i;
foreach (DataRow dr in dt.Rows)
tab = "";
for (i = 0; i < dt.Columns.Count; i++)
Response.Write(tab + dr[i].ToString());
tab = "\t";
Response.Write("\n");
Response.End();
catch (Exception Ex)
【讨论】:
您为什么将已接受的答案重新发布为您的答案?【参考方案10】:尝试将数据导出到与DataTable中相同的Excel文件,也可以自定义。
dtDataTable1 = ds.Tables[0];
try
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Workbook xlWorkBook = ExcelApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
for (int i = 1; i > 0; i--)
Sheets xlSheets = null;
Worksheet xlWorksheet = null;
//Create Excel sheet
xlSheets = ExcelApp.Sheets;
xlWorksheet = (Worksheet)xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing);
xlWorksheet.Name = "MY FIRST EXCEL FILE";
for (int j = 1; j < dtDataTable1.Columns.Count + 1; j++)
ExcelApp.Cells[i, j] = dtDataTable1.Columns[j - 1].ColumnName;
ExcelApp.Cells[1, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
ExcelApp.Cells[i, j].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.WhiteSmoke);
// for the data of the excel
for (int k = 0; k < dtDataTable1.Rows.Count; k++)
for (int l = 0; l < dtDataTable1.Columns.Count; l++)
ExcelApp.Cells[k + 2, l + 1] = dtDataTable1.Rows[k].ItemArray[l].ToString();
ExcelApp.Columns.AutoFit();
((Worksheet)ExcelApp.ActiveWorkbook.Sheets[ExcelApp.ActiveWorkbook.Sheets.Count]).Delete();
ExcelApp.Visible = true;
catch (Exception ex)
MessageBox.Show(ex.Message);
【讨论】:
【参考方案11】:如果您要使用格式化的标题文本将数据表导出到 Excel,请尝试这样。
public void ExportFullDetails()
Int16 id = Convert.ToInt16(Session["id"]);
DataTable registeredpeople = new DataTable();
registeredpeople = this.dataAccess.ExportDetails(eventid);
string attachment = "attachment; filename=Details.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
registeredpeople.Columns["Reg_id"].ColumnName = "Reg. ID";
registeredpeople.Columns["Name"].ColumnName = "Name";
registeredpeople.Columns["Reg_country"].ColumnName = "Country";
registeredpeople.Columns["Reg_city"].ColumnName = "City";
registeredpeople.Columns["Reg_email"].ColumnName = "Email";
registeredpeople.Columns["Reg_business_phone"].ColumnName = "Business Phone";
registeredpeople.Columns["Reg_mobile"].ColumnName = "Mobile";
registeredpeople.Columns["PositionRole"].ColumnName = "Position";
registeredpeople.Columns["Reg_work_type"].ColumnName = "Work Type";
foreach (DataColumn dc in registeredpeople.Columns)
Response.Write(tab + dc.ColumnName);
tab = "\t";
Response.Write("\n");
int i;
foreach (DataRow dr in registeredpeople.Rows)
tab = "";
for (i = 0; i < registeredpeople.Columns.Count; i++)
Response.Write(tab + dr[i].ToString());
tab = "\t";
Response.Write("\n");
Response.End();
【讨论】:
【参考方案12】:我已经使用以下代码完成了 DataTable 到 Excel 的转换。希望这很容易,无需更改更多内容,只需复制代码并用您的变量替换您的变量,它就会正常工作。
首先在您的解决方案 Document 中创建一个文件夹,然后创建一个 Excel 文件 MyTemplate.xlsx。您可以根据您的要求更改这些名称。但请记住,您还必须在代码中更改名称。
请找到以下代码...
protected void GetExcel_Click(object sender, EventArgs e)
ManageTicketBS objManageTicket = new ManageTicketBS();
DataTable DT = objManageTicket.GetAlldataByDate(); //this function will bring the data in DataTable format, you can use your function instate of that.
string DownloadFileName;
string FolderPath;
string FileName = "MyTemplate.xlsx";
DownloadFileName = Path.GetFileNameWithoutExtension(FileName) + new Random().Next(10000, 99999) + Path.GetExtension(FileName);
FolderPath = ".\\" + DownloadFileName;
GetParents(Server.MapPath("~/Document/" + FileName), Server.MapPath("~/Document/" + DownloadFileName), DT);
string path = Server.MapPath("~/Document/" + FolderPath);
FileInfo file = new FileInfo(path);
if (file.Exists)
try
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearContent();
response.ClearHeaders();
response.Buffer = true;
response.ContentType = MimeType(Path.GetExtension(FolderPath));
response.AddHeader("Content-Disposition", "attachment;filename=" + DownloadFileName);
byte[] data = File.ReadAllBytes(path);
response.BinaryWrite(data);
HttpContext.Current.ApplicationInstance.CompleteRequest();
response.End();
catch (Exception ex)
ex.ToString();
finally
DeleteOrganisationtoSupplierTemplate(path);
public string GetParents(string FilePath, string TempFilePath, DataTable DTTBL)
File.Copy(Path.Combine(FilePath), Path.Combine(TempFilePath), true);
FileInfo file = new FileInfo(TempFilePath);
try
DatatableToExcel(DTTBL, TempFilePath, 0);
return TempFilePath;
catch (Exception ex)
return "";
public static string MimeType(string Extension)
string mime = "application/octetstream";
if (string.IsNullOrEmpty(Extension))
return mime;
string ext = Extension.ToLower();
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (rk != null && rk.GetValue("Content Type") != null)
mime = rk.GetValue("Content Type").ToString();
return mime;
static bool DeleteOrganisationtoSupplierTemplate(string filePath)
try
File.Delete(filePath);
return true;
catch (IOException)
return false;
public void DatatableToExcel(DataTable dtable, string pFilePath, int excelSheetIndex=1)
try
if (dtable != null && dtable.Rows.Count > 0)
IWorkbook workbook = null;
ISheet worksheet = null;
using (FileStream stream = new FileStream(pFilePath, FileMode.Open, FileAccess.ReadWrite))
workbook = WorkbookFactory.Create(stream);
worksheet = workbook.GetSheetAt(excelSheetIndex);
int iRow = 1;
foreach (DataRow row in dtable.Rows)
IRow file = worksheet.CreateRow(iRow);
int iCol = 0;
foreach (DataColumn column in dtable.Columns)
ICell cell = null;
object cellValue = row[iCol];
switch (column.DataType.ToString())
case "System.Boolean":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.Boolean);
if (Convert.ToBoolean(cellValue)) cell.SetCellFormula("TRUE()");
else cell.SetCellFormula("FALSE()");
//cell.CellStyle = _boolCellStyle;
break;
case "System.String":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.String);
cell.SetCellValue(Convert.ToString(cellValue));
break;
case "System.Int32":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.Numeric);
cell.SetCellValue(Convert.ToInt32(cellValue));
//cell.CellStyle = _intCellStyle;
break;
case "System.Int64":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.Numeric);
cell.SetCellValue(Convert.ToInt64(cellValue));
//cell.CellStyle = _intCellStyle;
break;
case "System.Decimal":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.Numeric);
cell.SetCellValue(Convert.ToDouble(cellValue));
//cell.CellStyle = _doubleCellStyle;
break;
case "System.Double":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.Numeric);
cell.SetCellValue(Convert.ToDouble(cellValue));
//cell.CellStyle = _doubleCellStyle;
break;
case "System.DateTime":
if (cellValue != DBNull.Value)
cell = file.CreateCell(iCol, CellType.String);
DateTime dateTime = Convert.ToDateTime(cellValue);
cell.SetCellValue(dateTime.ToString("dd/MM/yyyy"));
DateTime cDate = Convert.ToDateTime(cellValue);
if (cDate != null && cDate.Hour > 0)
//cell.CellStyle = _dateTimeCellStyle;
else
// cell.CellStyle = _dateCellStyle;
break;
default:
break;
iCol++;
iRow++;
using (var WritetoExcelfile = new FileStream(pFilePath, FileMode.Create, FileAccess.ReadWrite))
workbook.Write(WritetoExcelfile);
WritetoExcelfile.Close();
//workbook.Write(stream);
stream.Close();
catch (Exception ex)
throw ex;
您只需要在脚本中复制和删除此代码并添加 命名空间,如下所示,同时更改之前讨论的 excel 文件名。
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.SS.Util;
【讨论】:
【参考方案13】:请试试这个,这将更快地将您的数据表数据导出到 Excel。
注意:我硬编码的范围“FW”是因为我有 179 列。
public void UpdateExcelApplication(SqlDataTable dataTable)
var objects = new string[dataTable.Rows.Count, dataTable.Columns.Count];
var rowIndex = 0;
foreach (DataRow row in dataTable.Rows)
var colIndex = 0;
foreach (DataColumn column in dataTable.Columns)
objects[rowIndex, colIndex++] = Convert.ToString(row[column]);
rowIndex++;
var range = this.workSheet.Range[$"A3:FWdataTable.Rows.Count + 2"];
range.Value = objects;
this.workSheet.Columns.AutoFit();
this.workSheet.Rows.AutoFit();
【讨论】:
什么是“工作表”类型。在哪里声明,初始化..将数据导出到 Excel 时如何更改文件名?
】将数据导出到Excel时如何更改文件名?【英文标题】:HowtochangethenameoffilewhileexportingdatatoExcel?【发布时间】:2013-02-2713:18:59【问题描述】:如何在将数据导出到Excel时更改文件名?<divid="example"class="k-content"><buttontype="button"... 查看详情
AnyLogic 将数据集导出到 excel 文件中
】AnyLogic将数据集导出到excel文件中【英文标题】:AnyLogicexportingdatasetintoexcelfile【发布时间】:2020-04-0209:00:03【问题描述】:我有一个名为datasetHourly的数据集,我想将模拟后的数据放入excel文件中,我该如何获得呢?我可以复制... 查看详情
使用 Pandas 将多个日志文件数据导出到单个 Excel
】使用Pandas将多个日志文件数据导出到单个Excel【英文标题】:ExportingMultiplelogfilesdatatosingleExcelusingPandas【发布时间】:2020-09-1510:38:07【问题描述】:如何将多个数据框导出到单个excel,我不是在谈论合并或组合。我只想将多个日... 查看详情
将 DataGridView 导出到 Excel 文件
】将DataGridView导出到Excel文件【英文标题】:ExportDataGridViewtoExcelFile【发布时间】:2014-04-0923:07:23【问题描述】:你能说我,我如何将DataGridView的内容保存到带有格式化单元格背景色/前景色的Exel文件?我有这样的DGV:当我尝试将... 查看详情
如何将sql server中的大量数据导出到excel文件中
】如何将sqlserver中的大量数据导出到excel文件中【英文标题】:Howtoexporthugedatafromsqlserverintoexcelfile【发布时间】:2017-05-3011:21:16【问题描述】:我想将sqlservermanagementstudio中的大数据(大约500万行,2列)导出到excel文件中,但是exc... 查看详情
使用 EPPlus 将 DataTable 导出到 Excel
...布时间】:2012-11-2002:54:06【问题描述】:我想使用EPPlus将数据表导出到Excel文件。该数据表具有int类型的属性,因此我希望Excel文件中的格式相同。有人知道如何将这样的DataTable导出到Excel吗?【问题讨论】:【参考方案1】:前... 查看详情
将数据从 MS Sql Server 存储过程导出到 excel 文件
】将数据从MSSqlServer存储过程导出到excel文件【英文标题】:exportdatafromMSSqlServerstoreproceduretoexcelfile【发布时间】:2014-12-1613:39:33【问题描述】:我有一个任务,那就是我想将数据从MSSqlServer存储过程导出到不同工作表中的excel文... 查看详情
怎样将sql数据导出到excel中
...容易对数据处理和方便用户邮箱传输。本次经验归纳了SQL数据表导出到EXCEL中的三种方法:1、复制粘贴,将SQL查询语句按指定条件导出数据;——适合小量数据。2、导出完整的SQL数据表为Excel文件;——适合大量数据。3、定时... 查看详情
如何使用 python 3 将数据从 textedit 导出到 excel 文件
】如何使用python3将数据从textedit导出到excel文件【英文标题】:Howtoexportdatafromtextedittoexcelfileusingpython3【发布时间】:2017-11-1608:07:52【问题描述】:今天遇到一个新问题,希望大家能帮帮我。我的问题是使用python3将数据从textedit... 查看详情
如何将access中的数据导出为excel文件?
...texcel或其他电子表格程序中使用microsoftaccess数据:可以将数据表作为无格式数据导出到microsoftexcel或其他电子表格程序中。可以将数据表、窗体或报表的导出直接作为excel(.xls)文件或工作表保存。可以将数据表、窗体或报表的导... 查看详情
将数据导出到 XML 以在 Excel 中打开
】将数据导出到XML以在Excel中打开【英文标题】:ExportingdatatoXMLtobeopenedinExcel【发布时间】:2012-03-2010:34:09【问题描述】:我有一个关于将数据保存到要由MicrosoftExcel打开的XML文件的问题。我在VisualC++中使用MFC构建了一个报表控件... 查看详情
通过保留数据类型将数据从 JSON 导出到 excel [关闭]
】通过保留数据类型将数据从JSON导出到excel[关闭]【英文标题】:ExportdatafromJSONtoexcelbypreservingdatatype[closed]【发布时间】:2015-08-3101:46:17【问题描述】:我正在使用alasql.js文件将JSON数据导出到excel文件中。我面临的问题是,当我... 查看详情
怎样将mysql数据导出到excel表中
...操作方法如下:1、打开NavicatforMySQL,单击core_db2、选择要导出的表右键,选择导出向导3、选择Excel4、设置导出文件的路径5、选择导出表的结构6、导出后就会看到下图的excel打开后的结果参考技术A借助客户端工具可以了,如dbvis... 查看详情
VBA 将 excel 单元格数据导出到 .txt 文件中
】VBA将excel单元格数据导出到.txt文件中【英文标题】:VBAtoexportexcelcelldatainto.txtfiles【发布时间】:2021-04-1517:50:19【问题描述】:我有一个Excel电子表格,它在C列的单元格中包含一些长文本,大约为400行。您可以在这里看到一个... 查看详情
如何使用pl/sql工具将oracle数据导出到excel
1、首先在SQLWindow窗口中,查询需要导出的数据。2、在查询的结果集上(注意不要选中任何一个行或者单元格)右键--【CopytoExcel】-->【Copyasxls/xlsx】导出到97-2003格式的.xls或者2007之后的xlsx文件.3、如果不想导出查询的全部数据... 查看详情
将数据从 Excel 导出到 Access - 错误:参数不是可选的
】将数据从Excel导出到Access-错误:参数不是可选的【英文标题】:ExportdatafromExceltoAccess-Error:ArgumentnotOptional【发布时间】:2012-07-0418:20:13【问题描述】:当我按下按钮时,我正在尝试使用我的Excel文件中的VBA代码将数据从Excel2010... 查看详情
将数据从平面文件加载到 Sql Server 表,并使用 SSIS 导出到 excel
】将数据从平面文件加载到SqlServer表,并使用SSIS导出到excel【英文标题】:LoaddatafromflatfiletoSqlServertableandalsoexporttoexcelusingSSIS【发布时间】:2020-11-1703:17:43【问题描述】:问题陈述:要求很简单,就是我们有一个平面文件(基本... 查看详情
如何将 SQL 语句结果导出到 Excel 文件
】如何将SQL语句结果导出到Excel文件【英文标题】:HowtoexportSQLstatementresultstoanExcelFile【发布时间】:2017-04-0518:59:39【问题描述】:我在ExcelVBA中有一个Access数据库和一个表单。我输入DB的所有数据都是通过VBA表单输入的。此数据... 查看详情