
前言:很多时候需要生成一个指定格式的excel文件,并且组织相关的数据,C#很好实现,但是py找了一圈,基本上只有sql查询后再下载,先组织代码分享
遗留问题:
1、生成csv格式文件,不是excel
2、excel文件怎么设置行宽
#######
# 引入clr运行库
import clr
import sys
# 添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
clr.AddReference('Kingdee.BOS.Contracts')
clr.AddReference('Kingdee.BOS.ServiceHelper')
clr.AddReference('ICSharpCode.SharpZipLib')
clr.AddReference('Newtonsoft.Json')
clr.AddReference("System.Web.Extensions")
clr.AddReference('NPOI')
clr.AddReference('NPOI.OOXML')
# 导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Attachment import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from Kingdee.BOS.JSON import *
from Kingdee.BOS.Core.Log import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Contracts import *
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Util import PathUtils
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.ServiceHelper.Excel import ExcelOperation
from ICSharpCode.SharpZipLib.Checksums import Crc32
from ICSharpCode.SharpZipLib.Zip import ZipOutputStream, ZipEntry
from NPOI.XSSF.UserModel import XSSFWorkbook
from System import *
from System import Array, Byte
from System import Uri
from System.Collections.Generic import List as CList
from System.Collections.Generic import Dictionary
from System.Collections.Generic import *
from System.Data import *
from System.IO import *
from System.IO import FileInfo
from System.IO import FileStream, FileMode
from System.IO import MemoryStream
from System.Net import *
from System.Net import FtpWebRequest, FtpWebResponse, NetworkCredential
from System.Text import *
from System.Threading import *
from System.Security.Cryptography import *
from System.Web.Script.Serialization import *
from Newtonsoft.Json import JsonConvert
from Newtonsoft.Json.Linq import *
reload(sys)
sys.setdefaultencoding('utf-8')
def BarItemClick(e):
key = e.BarItemKey.ToUpperInvariant()
if key == "REFQ_tbButton".ToUpperInvariant():
test_creat_file()
# 将列表转换为CSV字符串
def convert_list_to_csv(data_list):
headers = ['序号','物料编码','物料名称','物料规格','数量',"P