引用 Aspose.Cells;
基於WinForm
導入
private void btn_excel_input_Click(object sender, EventArgs e)
{
try
{
DataTable dt = new DataTable();
string filePath = "";
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Microsoft Excel files(*.xls)|*.xls"; //過濾一下,只要表格格式的
ofd.InitialDirectory = "c:\\";
ofd.RestoreDirectory = true;
ofd.FilterIndex = 1;
ofd.AddExtension = true;
ofd.CheckFileExists = true;
ofd.CheckPathExists = true;
ofd.ShowHelp = true; //是否顯示幫助按鈕
if (ofd.ShowDialog() == DialogResult.OK)
{
size_editfalge = "0";
thinkss_editflage = "0";
door_editflage = "0";
filePath = ofd.FileName;
Workbook workbook = new Workbook();
workbook.Open(filePath);
for (int i = 0; i < workbook.Worksheets.Count; i++)
{
//取第一個表
Cells cells = workbook.Worksheets[i].Cells;
if (cells.MaxDataRow != 0)
{
dt = cells.ExportDataTable(1, 0, cells.MaxDataRow, 導入EXCEL的列數);
dt =dt_handle(dt);
//獲取到了數據,存儲到表中
bool k = insert_into_db(dt);
if (k)
{
MessageBox.Show("導入成功,重新查詢即可看到!");
}
else
{
MessageBox.Show("導入失敗!");
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
導出
private void button3_Click(object sender, EventArgs e)
{
try
{
DataTable dt = (DataTable)dataGridView1.DataSource;
string fileToSave = "";
SaveFileDialog sfd = new SaveFileDialog();
sfd.InitialDirectory = "C:\\";
sfd.Filter = "Excel文件(*.xls)|*.xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
fileToSave = sfd.FileName;
}
if (fileToSave == "")
{
return;
}
#region Excel設置數據源
WorkbookDesigner designer = new WorkbookDesigner();
string path = Application.StartupPath + "\\存儲的文件夾\\文件名.xls"; //加載報表模板的存儲地址
designer.Open(path);
dt.TableName = "A"; //EXCEL模板報表的別名
designer.SetDataSource(dt);
designer.Process();
if (File.Exists(fileToSave))
{
File.Delete(fileToSave);
}
designer.Save(fileToSave, FileFormatType.Excel2);
MessageBox.Show("報表導出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
報表模板樣式
列名1 列名2 列名3
&=[A].對應DataTable的列名1 &=[A].對應DataTable的列名2 &=[A].對應DataTable的列名3